系統提供的繫結

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

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

  • 傳輸則決定了在傳送訊息給端點時要使用的基礎傳輸通訊協定,例如 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:緩衝處理要求訊息,資料流處理回應訊息。

另請參閱