Binding描述了哪些層面的信息
一個Binding包含着豐富的信息,每種信息都描述了服務端和客戶端交互過程中的一方面,如下表所示,Binding描述了這些層面的信息:
層次 |
備註說明 |
Transactions(事務) |
TransactionFlowBindingElement,用於指定事務流程 |
Reliability(信賴) |
ReliableSessionBindingElement,用於指定對會話方式 |
Security(安全) |
SecurityBindingElement,指定安全方式 |
Encoding(編碼) |
Text, Binary, MTOM, Custom,指定數據傳輸格式 |
Transport(傳輸) |
TCP, Named Pipes, HTTP, HTTPS, MSMQ, Custom,指定傳輸方式 |
選擇正確的Binding
Binding是可以自定義實現的,可WCF框架已經爲我們實現了足夠多的Binding,供我們來選擇,
如下表所示:
Binding名稱 |
Configuration Element |
描述 |
BasicHttpBinding |
basicHttpBinding |
一個指定用符合基本網絡服務規範通訊的binding,它用http進行傳輸,數據格式爲text/xml |
WSHttpBinding |
wsHttpBinding |
一個安全的通用的binding,但它不能在deplex中使用 |
WSDualHttpBinding |
wsDualHttpBinding |
一個安全的通用的binding,但能在deplex中使用 |
WSFederationHttpBinding |
wsFederationHttpBinding |
一個安全的通用的支持WSF的binding,能對用戶進行驗證和授權 |
NetTcpBinding |
netTcpBinding |
在wcf應用程序中最適合跨機器進行安全通訊的binding |
NetNamedPipeBinding |
netNamedPipeBinding |
在wcf應用程序中最適合本機進行安全通訊的binding |
NetMsmqBinding |
netMsmqBinding |
在wcf應用程序中最適合跨機器進行安全通訊的binding,並且支持排隊 |
NetPeerTcpBinding |
netPeerTcpBinding |
一個支持安全的,多機交互的binding |
MsmqIntegrationBinding |
msmqIntegrationBinding |
一個用於wcf與現有msmq程序進行安全通訊的binding |
下面的表格分別刪除了上表中的Binding在互操作性(Interoperability),安全性(Security),是否支持會話(Session),是否支持事務(Transactions)和是否爲全雙工(Duplex)上不同。
Bingding |
Interoperability |
Security |
Session |
Transactions |
Duplex |
BasicHttpBinding |
Basic Profile 1.1 |
(None), Transport, Message |
None, (None) |
None |
n/a |
WSHttpBinding |
WS |
Transport, (Message), Mixed |
(None), Transport, Reliable Session |
(None), Yes |
n/a |
WSDualHttpBinding |
WS |
(Message) |
(Reliable Session) |
(None), Yes |
Yes |
WSFederationHttpBinding |
WS-Federation |
(Message) |
(None), Reliable Session |
(None), Yes |
No |
NetTcpBinding |
.NET |
(Transport), Message |
Reliable Session, (Transport) |
(None), Yes |
Yes |
NetNamedPipeBinding |
.NET |
(Transport) |
None, (Transport) |
(None), Yes |
Yes |
NetMsmqBinding |
.NET |
Message, (Transport), Both |
(None) |
(None), Yes |
No |
NetPeerTcpBinding |
Peer |
(Transport) |
(None) |
(None) |
Yes |
MsmqIntegrationBinding |
MSMQ |
(Transport) |
(None) |
(None), Yes |
n/a |
·BasicHttpBinding: 最簡單的綁定類型,通常用於 Web Services。使用 HTTP 協議,Text/XML 編碼方式。
·WSHttpBinding: 比 BasicHttpBinding 更加安全,通常用於 non-duplex 服務通訊。
·WSDualHttpBinding: 和 WSHttpBinding 相比,它支持 duplex 類型的服務。
·WSFederationHttpBinding: 支持 WS-Federation 安全通訊協議。
·NetTcpBinding: 效率最高,安全的跨機器通訊方式。
·NetNamedPipeBinding: 安全、可靠、高效的單機服務通訊方式。
·NetMsmqBinding: 使用消息隊列在不同機器間進行通訊。
·NetPeerTcpBinding: 使用 P2P 協議在多機器間通訊。
·MsmqIntegrationBinding: 使用現有的消息隊列系統進行跨機器通訊。如 MSMQ。
傳輸方式:
僅作參考。
http://www.cnblogs.com/jillzhang/archive/2008/02/03/1063406.html