MsmqIntegrationBinding与NetMsmqBinding相对应

时间:2012-11-16 08:54:58

标签: .net wcf

我知道我们可以将上述绑定用于MSMQ应用程序。

其他客户(除了.net)也可以使用吗?

有什么区别......?一些实时例子会帮助我。

由于

1 个答案:

答案 0 :(得分:7)

它们是非常不同的绑定(即使它们在MsmqBindingBase中共享一个大的实现基础),NetMsmqBinding只能与其他.NET WCF客户端一起使用。 MsmqIntegrationBinding旨在当您的应用程序必须与使用MSMQ进行通信的旧应用程序(使用任何语言)互操作时使用,来自MSDN:

  

此绑定[MsmqIntegrationBinding]可用于使WCF应用程序能够发送和接收使用COM,本机C ++ API或System.Messaging命名空间中定义的类型的现有MSMQ应用程序的消息。

这些绑定之间最明显的差异可归纳为MsmqIntegrationBinding缺少的内容:

  • 安全支持非常简单(安全渠道怎么样?)。
  • Contracts接口更受限制(因为它必须与非.NET应用程序互操作)。
  • 地址语法与其他WCF绑定不同(请查看MSDN中示例中的EndpointAddress)。
  • 您无法使用所有消息的功能(例如,编码)。

有关详细信息,请参阅此博文中有关MsmqIntegrationBinding in WCF

的信息

然后何时使用它们?我认为任何新的WCF应用程序都应该始终使用NetMsmqBinding,仅保留MsmqIntegrationBinding与现有应用程序的兼容性。来自MSDN:

  

NetMsmqBinding绑定通过使用消息队列(MSMQ)作为传输提供对排队的支持,并支持松散耦合的应用程序,故障隔离,负载均衡和断开连接的操作。