天天看點

WCF系列博文(三)-----WCF定義的12中标準綁定特性

在使用WCF架構進行開發時,如何選擇一個适合的綁定對于消息傳輸的可靠性,傳輸模式是否跨程序、主機、網絡,傳輸模式的支援、安全性、性能等方面有着重要的影響。從本質來看,綁定具有的這些特性源于其使用的網絡協定和編碼器。綁定是一個定制好的通道棧,包含了協定通道、傳輸通道和編碼器。是以在使用WCF架構進行開發時,如何選擇一個合适的綁定是非常必要的。

下面先介紹一下這12個标準綁定:

WCF系列博文(三)-----WCF定義的12中标準綁定特性

常用

1、基本綁定(BasicHttpBinding)

對應BasicHttpBinding類,能夠将WCF服務公開為傳統的ASMX Web服務,是以前就的程式能夠使用現在的WCF

服務。在實際開發中一個WCF服務可能會給不同的程式調用,如給Java的程式調用,給Flex的程式調用等,那麼采

用BasicHttpBinding最合适不過了

2、TCP綁定(NetTcpBinding)

對應與NetTcpBinding類,TCP綁定使用TCP協定在Intranet中跨機器的通信,注意這裡是Intranet而非Internet。

支援多種特性,包括可靠性、事務性、安全性、以及WCF之間通信的優化。前提是要求用戶端與服務端都必須使用

WCF

3、IPC綁定(NetNamedPipeBinding)

對應于NetNamedPipeBinding累,使用命名管道為同一機器通信進行傳輸,安全性最高,因為不能接收其它機器的

外部調用。IPC協定綁定與TCP協定綁定相似,也是性能最好的綁定,因為IPC協定比TCP協定更簡單

4、Web服務(WS)綁定(WSHttpBinding)

對應于WSHttpBinding類,WS綁定使用Http或Https進行傳輸。為基于Internet的通信提供了多種特性(可靠性、

事務性、安全性),遵循WS-*标準。該綁定用來與支援WS-*标準的系統進行互操作

5、MSMQ綁定(NetMsmqBinding)

對應于NetMsmqBinding類,它使用MSMQ進行傳輸,用于支援斷開的隊列調用

注:二進制編碼格式使用TCP、IPC、MSMQ可以擷取最佳性能,但是它是以犧牲互操作性為代價,因為它隻支援

WCF到WCF的通信

不常用

6、WS雙向綁定

對應于WSDualHttpBinding類,與WS綁定幾乎一樣,不過它支援雙向通信。由于沒有支援回調的行業标準,是以

不支援互操作性。在.NET服務總線以及NetTcpRelayBinding出現後,不再推薦使用

7、對等網絡綁定

對應于NetPeerTcpBinding類,它使用對等網絡來傳輸消息:使用對等網絡與用戶端可以訂閱的相同網格,并且廣

播消息。設計網絡拓撲與網絡計算

8、聯邦WS綁定

對應于WSFederationHttpBinding類,主要是支援聯邦安全

9、聯邦WS 2007綁定

對應于WS2007FederationHttpBinding類,為WSFederationHttpBinding的更新版本

10、MSMQ內建綁定

對應于MsmqIntegrationBinding類,支援消息隊列的綁定,MSMQ內建綁定可以将WCF消息轉化為MSMQ消息,

它的設計目标就是為了與MSMQ用戶端互動

11、WS 2007綁定

對應于WS2007HttpBinding類,繼承與WSHttpBinding類,添加了對于事務、安全、可靠性規範的支援。

  現在知道了這些綁定的含義了,那麼我們該如何去選擇他們,下面通過一張圖,來幫助我們選擇合适的綁定。

WCF系列博文(三)-----WCF定義的12中标準綁定特性

  除此之外,性能也是我們要考慮的因素,通常情況 ,在滿足系統使用性能前提下,選擇一種最佳的綁定方式。一般的,使用IPC(即:netNamedPipeBinding)的綁定要優于使用TCP的綁定,而使用TCP(即:netTcpBinding)的綁定又優于使用HTTP的綁定。使用針對WCF優化的綁定要優于參與非WCF系統互動的綁定。