zoukankan      html  css  js  c++  java
  • 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);

    }

     

    测试正常。

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

     

  • 相关阅读:
    吴恩达-coursera-机器学习-week7
    吴恩达-coursera-机器学习-week4
    吴恩达-coursera-机器学习-week3
    吴恩达-coursera-机器学习-week2
    吴恩达-coursera-机器学习-week1
    Sqlserver实现故障转移 — 故障转移群集仲裁之DFS共享文件夹仲裁
    Sqlserver实现故障转移 — 辅助域控
    Sqlserver 查询数据库连接数
    Unable to preventDefault inside passive event listener
    记:倍福(CP2611 Control Panel)了解
  • 原文地址:https://www.cnblogs.com/jams742003/p/1687396.html
Copyright © 2011-2022 走看看