選擇通道
.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 編碼標準) 的編碼承載,以及二進位格式。
設定接收者,以在 ASP.NET 中和 TCP 通訊端上接收 HTTP 要求和傳送 HTTP 回應。
產生並取用用於物件參考的 ChannelDataStore。
支援模擬和委派。
支援 SSPI 加密。
![]() |
---|
若要在用戶端上搭配使用 HttpChannel 與 Microsoft Internet Explorer,則您無法在 Internet Explorer 中設定 Proxy 設定的自動組態。而是,必須在 Internet Explorer 中明確設定 Proxy 設定。 |
HttpChannel 一次只會開啟所指定伺服器的指定連接數目。預設為兩個,但您可在應用程式組態檔中使用 clientConnectionLimit 屬性,變更預設值。
如果您建置多個使用 .NET Framework 遠端處理的應用程式,很容易就會誤用 HttpChannel 來連接至使用 TcpChannel 接聽的伺服器應用程式定義域。如果這樣做,則用戶端會收到下列例外狀況:「下列連接已經關閉: 接收時發生未預期的錯誤」。如果您有用戶端收到這個例外狀況,則應檢查用戶端和伺服器,以找出不符的通道。
請參閱
參考
HttpChannel
TcpChannel
IpcChannel