我正在閱讀這篇文章http://weblogs.asp.net/spano/archive/2007/10/02/choosing-the-right-wcf-binding.aspx來選擇綁定選項。WCF - NetMsmqBinding和NetTcpBinding
其中i通過
脫機或斷開連接的互動得到了什麼是平均一個不尋常的疑問,選擇NetMsmqBinding
這是否使用這項服務意味着即使服務未運行還是客戶端?
你能分享一些實時的例子嗎?
我正在閱讀這篇文章http://weblogs.asp.net/spano/archive/2007/10/02/choosing-the-right-wcf-binding.aspx來選擇綁定選項。WCF - NetMsmqBinding和NetTcpBinding
其中i通過
脫機或斷開連接的互動得到了什麼是平均一個不尋常的疑問,選擇NetMsmqBinding
這是否使用這項服務意味着即使服務未運行還是客戶端?
你能分享一些實時的例子嗎?
2個綁定根本不同。
NetTcpBinding
可以作爲MS專有格式(通常二進制)在概念上類似RPC
被認爲是(例如可以用來代替.NET Remoting
)。它是同步的,即客戶端和服務器必須同時在線,並且客戶端立即收到響應(幾乎)。
MSMQ
是微軟提出的面向消息的中間件解決方案,它圍繞着異步隊列 - 例如,如果目標服務器在客戶端發送消息時處於脫機狀態,則消息將在客戶端上排隊,直到服務器恢復聯機狀態。每個隊列都是單向的,儘管通過從服務器到客戶端的第二個隊列可以實現雙向通信。發送WCF MSMQ消息需要在客戶端上安裝MSMQ
服務。隊列中的消息可以有一個傳遞'超時',否則將被放置在適用的死信隊列中。
現實世界的例子:
NetTcpBinding
二進制序列高性能,微軟WCF客戶端和服務器之間,例如同步通信需求上傳文件,媒體等在那裏Xml
不會是有用的(否則,我會用wsHttpBinding
同步Xml
/SOAP
消息)MSMQBinding
與DTC啓用,以確保可靠的消息傳遞2個或多個系統之間(如金融),與端點中的.Net是中的至少一個,以及「compatable」服務器(不一定WCF
,例如BizTalk
,或其它EAI
集線器或ESB
總線具有適配器MSMQ
,例如MSMQ and MQSeries
之間存在橋)。消息通常採用Xml
格式。TL; DR
這是否使用這項服務意味着即使服務未運行還是客戶
是。如果MSMQ
在本地運行,客戶端將立即返回成功響應(表示消息已排隊)。但這並不意味着該消息已被服務器成功接收。
好的答案,我已經在很多複雜的系統中廣泛使用過WCF,並且只是想添加我的兩分錢。 1.避免默認WCF,除非是特定的用例,它提供了REST風格的Web服務中缺少的東西; WCF頭痛的9/10倍不值得。 2. NetTcpBinding無疑是我個人經驗中最好的(也是最快的 - 排除命名管道)綁定選項。然而,海報解釋說,它沒有任何內置冗餘。 –
同意 - 已經4年了,xml現在大部分都是由JSON服務重新修復的,而WebApi現在已經將WCF移植到了RESTful世界。 – StuartLC