一、五種常用綁定常用綁定的傳輸協議以及編碼格式
名稱 | 傳輸協議 | 編碼格式 | 互操作性 |
BasicHttpBinding | HTTP/HTTPS | Text,MTOM | Yes |
NetTcpBinding | TCP | Binary | No |
NetNamedPipeBinding | IPC | Binary | No |
WSHttpBinding | HTTP/HTTPS | Text,MTOM | Yes |
NetMsmqBinding | MSMQ | Binary | No |
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的通信
二、選擇綁定
首先考慮服務是否要與非WCF的客戶端交互,如果需要,判斷客戶端期望調用基本Web協議(ASMX Web)就選BasicHttpBinding,否則就選WSHttpBinding,該綁定支持WS-*標准。
WCF到WCF的考慮是否需要脫機或斷開狀態下的交互,如果需要就選擇NetMsmqBinding。此外在判斷是否需要跨機器調用,如果需要就選擇NetTcpBinding,否則就選擇NetNamedPipeBinding
三、其他集中不是很常用的綁定
1、WS雙向綁定
對應於WSDualHttpBinding類,與WS綁定幾乎一樣,不過它支持雙向通信。由於沒有支持回調的行業標准,所以不支持互操作性。在.NET服務總線以及NetTcpRelayBinding出現后,不再推薦使用
2、對等網絡綁定
對應於NetPeerTcpBinding類,它使用對等網絡來傳輸消息:使用對等網絡與客戶端可以訂閱的相同網格,並且廣播消息。設計網絡拓撲與網絡計算
3、聯邦WS綁定
對應於WSFederationHttpBinding類,主要是支持聯邦安全
4、聯邦WS 2007綁定
對應於WS2007FederationHttpBinding類,為WSFederationHttpBinding的更新版本
5、MSMQ集成綁定
對應於MsmqIntegrationBinding類,支持消息隊列的綁定,MSMQ集成綁定可以將WCF消息轉化為MSMQ消息,它的設計目標就是為了與MSMQ客戶端交互
6、WS 2007綁定
對應於WS2007HttpBinding類,繼承與WSHttpBinding類,添加了對於事務、安全、可靠性規范的支持
轉自:http://blog.csdn.net/dingxingmei/article/details/13772121