我正在阅读这篇文章http://weblogs.asp.net/spano/archive/2007/10/02/choosing-the-right-wcf-binding.aspx 来选择绑定选项。
我对什么意思有一个不寻常的疑问
离线或断开交互,选择 NetMsmqBinding
这是否意味着即使服务没有运行仍然客户端使用该服务?
你能分享一些实时的例子吗?
我正在阅读这篇文章http://weblogs.asp.net/spano/archive/2007/10/02/choosing-the-right-wcf-binding.aspx 来选择绑定选项。
我对什么意思有一个不寻常的疑问
离线或断开交互,选择 NetMsmqBinding
这是否意味着即使服务没有运行仍然客户端使用该服务?
你能分享一些实时的例子吗?
2个绑定是完全不同的。
NetTcpBinding
可以被认为是一种 MS 专有格式(通常是二进制),在概念上类似于RPC
(例如,可用于替换.NET Remoting
)。它是同步的,即客户端和服务器必须同时在线,并且客户端(几乎)立即收到响应。
MSMQ
是微软的一个面向消息的中间件解决方案,它围绕异步队列展开——例如,如果在客户端发送消息时目标服务器处于脱机状态,则消息将在客户端排队,直到服务器重新联机。每个队列只是一种方式,尽管可以通过从服务器到客户端的第二个队列来实现双向通信。发送 WCF MSMQ 消息需要MSMQ
在客户端上安装服务。队列上的消息可以有一个传递“超时”,否则将被放置在一个适用的死信队列中。
现实世界的例子:
NetTcpBinding
二进制序列化来满足 Microsoft WCF 客户端和服务器之间的高性能、同步通信需求,例如上传文件、媒体等无用的地方Xml
(否则,我将wsHttpBinding
用于同步Xml
/SOAP
消息传递)MSMQBinding
启用 DTC 来确保 2 个或多个系统(例如财务)之间的可靠消息传递,其中至少一个端点位于 .Net 中,以及“兼容”服务器(不一定WCF
,例如BizTalk
,或其他EAI
集线器或ESB
总线)有适配器MSMQ
,例如,之间存在桥梁MSMQ and MQSeries
)。消息通常采用某种Xml
格式。TL;博士
这是否意味着即使服务没有运行仍然客户端使用该服务
是的。如果MSMQ
在本地运行,客户端将立即返回成功响应(表示消息已排队)。然而,这并不意味着该消息已被服务器成功接收。