選擇通道
本主題專門說明一項為了在現有應用程式中提供回溯相容性而保留的舊有技術,不建議用於新的開發工作。分散式應用程式應使用 Windows Communication Foundation (WCF) 進行開發。
.NET Framework 遠端處理基礎結構提供下列通道實作:
IpcChannel
IpcChannel 類別針對相同電腦上的多個處理序應用程式使用具名管道來提供處理序之間的高速通訊。IpcChannel:
使用具名管道在寄件者與接收者之間進行通訊。
支援二進位格式的編碼承載以及業界標準的 SOAP 序列化格式。
產生並使用物件參考的 ChannelDataStore。
支援模擬和委派。
針對進階存取控制支援具名管道上的存取控制清單 (ACL)。
當應用程式必須與另一個於相同電腦之不同處理序中執行的應用程式進行通訊時,請使用 IpcChannel。由於 IpcChannel 使用具名管道,因此應用程式一般可以取得最高的通訊效能,並使用模擬與委派來控制遠端物件的存取。如果要讓三層式應用程式在負載下運作良好,於第二層與第三層之間使用此功能最能發揮功用。
TcpChannel
TcpChannel 類別使用二進位格式子,將所有訊息序列化為二進位資料流,並使用 TCP 通訊協定將資料流傳輸至目標統一資源識別元 (URI)。TcpChannel 會執行下列功能。
使用 TCP 通訊端在寄件者與接收者之間進行通訊。
支援二進位格式的編碼承載以及業界標準的 SOAP 序列化格式。
產生並使用物件參考的 ChannelDataStore。
支援模擬和委派。
支援 SSPI 加密。
在執行緒對另一部伺服器提出要求的期間,TcpChannel 會盡可能地開啟與快取所收到的任何連接。一旦通訊端連接停止活動 15-20 秒,就會在用戶端上關閉。
如果您正在建置一些使用 .NET Framework 遠端處理的應用程式,很容易誤用 HttpChannel 來連接至使用 TcpChannel 進行接聽的伺服器應用程式定義域。如果您正在進行這項連接,用戶端會收到下列例外狀況:「基礎連接已關閉: 接收時發生未預期的錯誤」。如果您的用戶端收到此例外狀況,請檢查用戶端與伺服器是否有不相符的通道。
HttpChannel
HttpChannel 類別會使用 SOAP 通訊協定,在遠端物件之間來回傳輸訊息。所有訊息都會透過 SoapFormatter 來傳遞,當中訊息會變更為 XML 並加以序列化,而資料流則會加入必要的 SOAP 標頭。如果同時指定了二進位格式子,則會建立二進位資料流。資料流會接著透過 HTTP 通訊協定傳輸到目標 URI。HttpChannel 與 SOAP 1.1 相容,並可執行下列功能:
使用 HTTP 通訊協定做為傳輸在寄件者與接收者之間進行通訊。
支援 SOAP 格式的編碼承載,此承載是一種 XML 編碼標準,也是一種二進位格式。
將接收者設定為接收 HTTP 要求並將 HTTP 回應傳遞至 ASP.NET 與 TCP 通訊端。
產生並使用物件參考的 ChannelDataStore。
支援模擬和委派。
支援 SSPI 加密。
注意: |
---|
若要透過 Microsoft Internet Explorer 來使用用戶端上的 HttpChannel,您不可以將 Internet Explorer 上 Proxy 設定設為自動組態。反之,您必須明確地設定 Internet Explorer 中的各項 Proxy 設定。 |
HttpChannel 一次只能針對特定伺服器開啟指定的連接數目。預設為 2,但是您可以使用應用程式組態檔中的 clientConnectionLimit 屬性來變更預設值。
如果您正在建置一些使用 .NET Framework 遠端處理的應用程式,很容易誤用 HttpChannel 來連接至使用 TcpChannel 進行接聽的伺服器應用程式定義域。如果您正在進行這項連接,用戶端會收到下列例外狀況:「基礎連接已關閉: 接收時發生未預期的錯誤」。如果您的用戶端收到此例外狀況,請檢查用戶端與伺服器是否有不相符的通道。
另請參閱
參考
HttpChannel
TcpChannel
IpcChannel