系統提供的繫結

在與端點對話時,繫結會指定要使用的通訊機制,並指出如何連接至端點。 繫結包含下列項目:

  • 對於傳送至端點的訊息來說,通訊協定堆疊決定了要使用的安全性、可靠性,與內容流量設定。

  • 傳輸則決定了在傳送訊息給端點時要使用的基礎傳輸通訊協定,例如 TCP 或 HTTP。

  • 編碼會決定用來傳送到端點之訊息的 Wire 編碼。 例如,文字/XML、二進位或訊息傳輸最佳化機制 (MTOM)。

本文提供所有系統提供的 Windows Communication Foundation (WCF) 繫結。 如果這些繫結都無法完全符合您的應用程式準則,您可以建立自訂繫結。 如需建立自訂繫結的詳細資訊,請參閱自訂繫結。

一個安全、互通,且可支援 WS-Federation 通訊協定的繫結,此繫結可讓聯合組織有效率地驗證並授權使用者。

重要

請務必選取包含安全性的繫結。 根據預設,除了 <basicHttpBinding> 元素之外,所有繫結都會啟用安全性。 如果您沒有選取安全繫結或是停用了安全性,請記得透過某種方式來保護您的資料,例如儲存在安全的資料中心或是另外放在隔離的網路上。

重要

請勿使用不支援或已停用安全性的繫結來搭配雙工合約一起使用,除非您能夠以其他方式來保護資料的安全。

下列繫結會隨附於 WCF:

繫結 組態元素 描述
BasicHttpBinding <basicHttpBinding> 適合用來與 WS-Basic Profile 相容之 Web 服務通訊的繫結;例如,以 ASP.NET Web 服務 (ASMX) 為基礎的服務。 此繫結使用 HTTP 做為傳輸,並使用文字/XML 做為預設的訊息編碼。
WSHttpBinding <wsHttpBinding> 適用在非雙工服務合約上的安全且互通的繫結。
WSDualHttpBinding <wsDualHttpBinding> 安全且互通的繫結,適用於雙工服務合約或透過 SOAP 媒介的通訊。
WSFederationHttpBinding <wsFederationHttpBinding> 安全、互通且支援 WS-Federation 通訊協定的繫結,此繫結可讓聯合組織有效率地驗證並授權使用者。
NetHttpBinding <netHttpBinding> 為了使用 HTTP 或 WebSocket 服務而設計的繫結,其預設會使用二進位編碼。
NetHttpsBinding <netHttpsBinding> 為了使用 HTTP 或 WebSocket 服務而設計的安全繫結,其預設會採用二進位編碼。
NetTcpBinding <netTcpBinding> 安全且最佳化的繫結,適用於 WCF 應用程式之間的跨電腦通訊。
NetNamedPipeBinding <netNamedPipeBinding> 安全、可靠且最佳化的繫結,適用於 WCF 應用程式之間的電腦通訊。
NetMsmqBinding <netMsmqBinding> 佇列繫結,適用於 WCF 應用程式之間的跨電腦通訊。
NetPeerTcpBinding <netPeerTcpBinding> 可啟用安全、多電腦通訊的繫結。
MsmqIntegrationBinding <msmqIntegrationBinding> 一種適用於 WCF 應用程式與現有訊息佇列應用程式之間的跨電腦通訊之繫結。
BasicHttpContextBinding <basicHttpContextBinding> 一種適合用來與 WS-Basic Profile 相容的 Web 服務進行通訊之繫結,能夠啟用用於交換內容的 HTTP Cookie。
NetTcpContextBinding <netTcpContextBinding> 安全且最佳化的繫結,適用於在 WCF 應用程式之間進行跨電腦的通訊,可以啟用用於交換內容的 SOAP 標頭。
WebHttpBinding <webHttpBinding> 用於設定 WCF Web 服務端點的繫結,這些服務的公開會透過 HTTP 要求,而非 SOAP 訊息。
WSHttpContextBinding <wsHttpContextBinding> 適用在非雙工服務合約上的安全且互通的繫結,可以啟用用於交換內容的 SOAP 標頭。
UdpBinding <udpBinding> 要在同時傳送一批突發之簡單訊息給大量用戶端時使用的繫結。

下表說明每一個系統提供繫結的個別功能。 您將於表格欄位中找到繫結;各項功能則列於各資料列,並於另一個表格中加以描述。 下表將說明使用的繫結縮寫。 若要選取繫結,請決定哪一欄可滿足所有您需要的資料列功能。

繫結 互通性 安全性 (預設值) 工作階段
(預設值)
交易 雙工 編碼 (預設值) 串流
(預設值)
BasicHttpBinding Basic Profile 1.1 (無)、傳輸、訊息、混合 (無) (無) n/a 文字、(MTOM) 是
(緩衝)
WSHttpBinding WS 傳輸、(訊息)、混合 (無)、可靠工作階段、安全性工作階段 (無)、是 n/a (文字)、MTOM 否
WSDualHttpBinding WS (訊息)、無 (可靠工作階段)、安全性工作階段 (無)、是 是 (文字)、MTOM 否
WSFederationHttpBinding WS-同盟 (訊息)、混合、無 (無)、可靠工作階段、安全性工作階段 (無)、是 否 (文字)、MTOM 否
NetHttpBinding .NET (無)、傳輸、訊息、TransportWithMessageCredential、TransportCredentialOnly 請參閱下列注意事項 無 請參閱下列注意事項 (二進位)、文字、MTOM 是 (緩衝)
NetHttpsBinding .NET (傳輸)、TransportWithMessageCredential 請參閱下列注意事項 無 請參閱下列注意事項 (二進位)、文字、MTOM 是
(緩衝)
NetTcpBinding .NET (傳輸)、訊息、無、混合 (傳輸)、可靠工作階段、安全性工作階段 (無)、是 是 Binary 是
(緩衝)
NetNamedPipeBinding .NET (傳輸)、無 無、(傳輸) (無)、是 是 Binary 是
(緩衝)
NetMsmqBinding .NET 訊息、(傳輸)、無 (無)、傳輸 無、(是) 否 Binary 否
NetPeerTcpBinding 對等 (傳輸) (無) (無) 是 否
MsmqIntegrationBinding MSMQ (傳輸) (無) 無、(是) n/a n/a 否
BasicHttpContextBinding Basic Profile 1.1 (無)、傳輸、訊息、混合 (無) (無) n/a 文字、(MTOM) 是
(緩衝)
NetTcpContextBinding .NET (傳輸)、訊息、無、混合 (傳輸)、可靠工作階段、安全性工作階段 (無)、是 是 Binary 是
(緩衝)
WSHttpContextBinding WS 傳輸、(訊息)、混合 (無)、可靠工作階段、安全性工作階段 (無)、是 n/a 文字、(MTOM) 否
UdpBinding

注意:互通性可以透過實作這個繫結所實作的標準 SOAP-over-UDP 規格來達成。
.NET (無) (無) (無) n/a (文字) 否

重要

NetHttpBinding 是為了使用 HTTP 或 WebSocket 服務而設計的繫結,其預設會使用二進位編碼。 NetHttpBinding 會偵測其所搭配使用的是要求-回覆合約還是雙工合約,並改變行為來配合,也就是會針對要求-回覆合約使用 HTTP,並針對雙工合約使用 WebSockets。 您可以覆寫這個行為,方法是使用 WebSocketTransportUsage 繫結設定:WhenDuplex - 這是預設值,行為方式如上所述。 Never-這會避免使用 WebSockets。 嘗試將這個設定用於雙工合約會導致例外狀況。 Always-這會強制使用 WebSockets,甚至用於要求-回覆合約。 NetHttpBinding 在 HTTP 模式和 WebSocket 模式下都會支援可靠工作階段。 在 WebSocket 模式中,工作階段是由傳輸提供。

下表說明上一個表格中列出的各項功能。

功能 描述
互通性類型 表示繫結一定可與其互通的通訊協定或技術。
安全性 指定保護通道的方式:
- 無:SOAP 訊息未受保護,且用戶端也未經過驗證。
- 傳輸:已滿足傳輸層的安全性需求。
- 訊息:已滿足訊息層的安全性需求。
- 混合:訊息已包含宣告,傳輸層級的完整性與機密性需求已滿足。
工作階段 指定此繫結是否支援工作階段合約。
交易 指定是否已啟用異動。
雙工 指定是否支援雙工合約。 請注意,此功能需要繫結對工作階段的支援。
編碼 請指定訊息的 Wire 格式。 允許的值包括:
- 文字:例如 UTF-8。
- 二進位
- 訊息傳輸最佳化機制 (MTOM):一種有效的編碼方式,可在 SOAP 封套內容中編碼二進位的 XML 項目。
串流 指定傳入與傳出的訊息是否支援資料流。 請使用繫結上的 TransferMode 屬性來設定該值。 允許的值包括:
- Buffered:要求訊息和回應訊息已同時緩衝處理。
- Streamed:要求訊息和回應訊息已同時進行資料流處理。
- StreamedRequest:資料流處理要求訊息,緩衝處理回應訊息。
- StreamedResponse:緩衝處理要求訊息,資料流處理回應訊息。

另請參閱