通道註冊

在 .NET 遠端處理系統中,通道物件會在用戶端呼叫遠端物件上的方法時提供資料傳輸。 遠端服務可能需要支援多個通道,而用戶端應用程式也需要選取最能符合它需求的通道。 如果沒有在用戶端組態檔中指定通道,而您的用戶端呼叫了遠端物件上的方法,若其中有一個實作支援用戶端的網路協定,.NET 遠端處理系統就會載入其中一個預設的通道實作 (HttpChannelTcpChannel)。 然而,如果用戶端會使用任何的回呼函式 (Callback Function) 或事件時,您必須指定一個用戶端通道以接聽 (Listen) 該回呼函式。

註冊通道有兩種方式。 宣告一個通道樣板,然後在您的應用程式中參考這個通道,或直接在您的應用程式中指定所有的通道資訊。 Machine.config 檔中預設的通道樣板應該足供大部分的應用程式使用,而且您可以使用 <channel> 標記的 Ref 屬性並將其指定為 "tcp" 或 "http",由 <channels> 標記 (在 <application> 標記內) 參考。 當您使用 HttpChannel 時並不需要指定 Port 屬性,但使用 TcpChannel 時則必須指定這個屬性。

當您的應用程式會公開伺服器物件時,您必須註冊一個通道使用戶端應用程式可以和您的物件通訊。 若要完成這項工作,您可以利用程式設計的方式使用 ChannelServices.RegisterChannel 方法,或在組態檔中註冊通道。

當您的應用程式會使用物件時,您必須註冊一個可以找到物件的通道 (當您想接聽回呼函式或事件時這是屬於強制性質的) 除非該服務物件已使用電腦組態檔中列出的一個預設用戶端通道。

如需詳細的範例資訊,請參閱遠端處理範例:通道接收提供者<channel> 執行個體項目和 <channel> 樣板項目。

通道接收

通道接收允許開發人員自訂用戶端和遠端服務之間的訊息序列化 (Serialization) 和傳輸。 通道接收是由接收提供者所建立,而且用戶端接收提供者和伺服器接收提供者都可以在組態檔中指定。 當伺服器收送訊息時即會叫用伺服器通道接收,它們是在 <serverProviders> 項目內指定。 當用戶端收送訊息時即會叫用用戶端接收,它們是在 <clientProviders> 項目內指定。

通道必須具有一個格式器接收。 格式器接收可以將訊息序列化。 .NET Framework 包含二進位和 SOAP 序列化格式器。

請特別注意當您指定自訂格式器後,.NET 遠端處理系統即假設您將依您需要的順序指定所有的通道。 因此,當您宣告一個使用自訂格式器的自訂通道時,您必須同時指定通道接收鏈結中的其他提供者。 而預設通道接收將不會加入。

請參閱

工作

HOW TO:在組態檔中建立通道樣板

參考

System.Runtime.Remoting.RemotingConfiguration Class

概念

遠端應用程式的組態
遠端物件組態

其他資源

使用組態檔註冊遠端物件
NET Framework 遠端處理概觀
NET Framework 遠端處理概觀

Footer image

Copyright © 2007 by Microsoft Corporation. All rights reserved.