• WCF 消息队列通信


    MSMQ microsoft Message Queue,微软消息队列。通过它,应用程序开发人员可以通过发送和接收消息,来与应用程序进行快速可靠的通信。

     

    WCF中,提供了MSMQ通信绑定:NetMsmqBindingMsmqIntegrationBinding

    这里做个简单的演示。(我的环境:windows2003 EE)

    (1)安装消息队列服务

    添加windows组件,在应用程序服务器中找到消息队列进行安装。

    (2)启动消息队列服务

    (3)在计算机管理中查看消息队列,在专用消息队列中添加专用队列,起名为msmqdemo

    (4)开始创建WCF服务

    很简单了,配置NetMsmqBinding绑定,设置绑定细节。exactlyOnce 设置为false,地址设置为:

    net.msmq://localhost/private/MSMQDemo

    专用队列的地址是/private$/名称,这里的地址是这个样子。然后发布元数据,地址我设置的为:

    http://localhost:8731/MSMQWCF/PrintService/

     

    因为它不支持双工通信(消息队列是单向的),所以,操作属性为单向。以添加客户为例,

    数据契约:

    public class Customer

    {

    public int Unid { get; set; }

    public string CustomerName { get; set; }

    public DateTime CreateTime { get; set; }

    }

     

    服务契约为:

    [OperationContract(IsOneWay = true)]

    void AddCustomer(Customer customer);

     

    实现:

    public void AddCustomer(Customer customer)

    {

        Console.WriteLine("Customer order!");

    Console.WriteLine(customer.Unid+""

    +customer.CustomerName+" 订单时间:"

    +customer.CreateTime.ToString());

    }

     

    (5)客户端

    添加wcf引用。测试

    [Test]

    public void TestmqmqCustomer()

    {

    PrintInstance.PrintServiceClient client =

    new UNTest.PrintInstance.PrintServiceClient();

     

     

    PrintInstance.Customer _customer =

    new UNTest.PrintInstance.Customer {

         Unid=1,

    CustomerName="宋江",

    CreateTime=Convert.ToDateTime("2010-2-2")

        };

        client.AddCustomer(_customer);

    }

     

    测试正常。

    在服务不启动的状态下,单独执行客户端测试,会把信息写到消息队列中,这个可以在消息队列控制台看到。队列的读取与优先级有关。同优先级的,按先进先出处理。

     

  • 相关阅读:
    Oracle 口令文件:即 oracle密码文件
    Oracle_plsql_开发工具搭建最小化客户端
    Oracle 网络监听配置管理
    Oracle12c 从入门到精通(第二版) 闫红岩 金松河 编著
    手工建库
    Oracle管理文件OMF (oracle managed files)
    逻辑存储结构
    Oracle管理文件OMF (oracle managed files)
    PowerDesigner连接Oracle并导出表结构
    win 系统设置weblogic 进行定时自动重启并删除其日志和缓存文件,定时监控cpu是否达到100%并重启weblogic服务
  • 原文地址:https://www.cnblogs.com/jams742003/p/1687396.html
Copyright © 2020-2023  润新知