7

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

这也是其他客户(.net除外)的消耗品吗?

有什么不同...?一些实时的例子会帮助我。

谢谢

4

1 回答 1

7

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

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

这些绑定之间最明显的区别可以总结为MsmqIntegrationBinding缺乏:

  • 安全支持非常微不足道(安全通道呢?)。
  • 合同接口受到更多限制(因为它必须与非 .NET 应用程序互操作)。
  • 地址的语法与其他 WCF 绑定不同(请EndpointAddress参阅 MSDN 中的示例)。
  • 您不能使用所有消息的功能(例如编码)。

有关这方面的更多详细信息,请查看这篇关于WCF 中 MsmqIntegrationBinding 的博客文章。

那么什么时候使用它们呢?我认为任何新的 WCF 应用程序都应该始终使用NetMsmqBindingMsmqIntegrationBinding仅保留与现有应用程序的兼容性。来自 MSDN:

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

于 2012-11-16T09:13:06.757 回答