ChannelServices.RegisterChannel 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
RegisterChannel(IChannel) |
已淘汰.
登錄具有通道服務的通道。 RegisterChannel(IChannel) 已經過時。 請改用 RegisterChannel(IChannel, Boolean)。 |
RegisterChannel(IChannel, Boolean) |
登錄具有通道服務的通道。 |
RegisterChannel(IChannel)
警告
Use System.Runtime.Remoting.ChannelServices.RegisterChannel(IChannel chnl, bool ensureSecurity) instead.
登錄具有通道服務的通道。 RegisterChannel(IChannel) 已經過時。 請改用 RegisterChannel(IChannel, Boolean)。
public:
static void RegisterChannel(System::Runtime::Remoting::Channels::IChannel ^ chnl);
public static void RegisterChannel (System.Runtime.Remoting.Channels.IChannel chnl);
[System.Obsolete("Use System.Runtime.Remoting.ChannelServices.RegisterChannel(IChannel chnl, bool ensureSecurity) instead.", false)]
public static void RegisterChannel (System.Runtime.Remoting.Channels.IChannel chnl);
static member RegisterChannel : System.Runtime.Remoting.Channels.IChannel -> unit
[<System.Obsolete("Use System.Runtime.Remoting.ChannelServices.RegisterChannel(IChannel chnl, bool ensureSecurity) instead.", false)>]
static member RegisterChannel : System.Runtime.Remoting.Channels.IChannel -> unit
Public Shared Sub RegisterChannel (chnl As IChannel)
參數
- chnl
- IChannel
要登錄的通道。
- 屬性
例外狀況
chnl
參數為 null
。
通道已經登錄。
至少有一個呼叫堆疊中較高的呼叫端,不具有設定遠端類型和通道的使用權限。
範例
HttpChannel^ channel = gcnew HttpChannel( 9000 );
ChannelServices::RegisterChannel( channel, false );
RemotingConfiguration::RegisterWellKnownServiceType( SampleNamespace::SampleService::typeid, "MySampleService/SampleService::soap", WellKnownObjectMode::Singleton );
Console::WriteLine( "** Press enter to end the server process. **" );
Console::ReadLine();
HttpChannel channel = new HttpChannel(9000);
ChannelServices.RegisterChannel(channel);
RemotingConfiguration.RegisterWellKnownServiceType( typeof(SampleService),
"MySampleService/SampleService.soap", WellKnownObjectMode.Singleton);
Console.WriteLine("** Press enter to end the server process. **");
Console.ReadLine();
Dim channel As New HttpChannel(9000)
ChannelServices.RegisterChannel(channel)
RemotingConfiguration.RegisterWellKnownServiceType(GetType(SampleService), "MySampleService/SampleService.soap", WellKnownObjectMode.Singleton)
Console.WriteLine("** Press enter to end the server process. **")
Console.ReadLine()
備註
注意
RegisterChannel(IChannel) 已經過時。 請改用 RegisterChannel(IChannel, Boolean)。
方法 RegisterChannel 會從通道物件接受 IChannel 介面。 通道必須是唯一的 ChannelName ,或者通道必須是匿名的。 如果 IChannel.ChannelName 設定為 null
或使用Emptyname
組態屬性,則通道為匿名。
您無法在 中註冊兩個具有相同名稱的 AppDomain通道。 根據預設,的名稱 HttpChannel 為 「HTTP」 而的名稱 TcpChannel 為 「tcp」。因此,如果您想要註冊相同類型的兩個通道,您必須透過組態屬性為其中一個通道指定不同的名稱。
如需通道組態屬性的詳細資訊,請參閱 HttpChannel和 <channel> Element (Template) 。
適用於
RegisterChannel(IChannel, Boolean)
登錄具有通道服務的通道。
public:
static void RegisterChannel(System::Runtime::Remoting::Channels::IChannel ^ chnl, bool ensureSecurity);
public static void RegisterChannel (System.Runtime.Remoting.Channels.IChannel chnl, bool ensureSecurity);
static member RegisterChannel : System.Runtime.Remoting.Channels.IChannel * bool -> unit
Public Shared Sub RegisterChannel (chnl As IChannel, ensureSecurity As Boolean)
參數
- chnl
- IChannel
要登錄的通道。
- ensureSecurity
- Boolean
true
會確保啟用安全性,否則為 false
。 將值設定為 false
不會影響 TCP 或 IPC 通道上的安全性設定。
例外狀況
chnl
參數為 null
。
通道已經登錄。
至少有一個呼叫堆疊中較高的呼叫端,不具有設定遠端類型和通道的使用權限。
HttpServerChannel 上並不支援。 如果您需要安全的 HTTP 通道,請裝載使用網際網路資訊服務 (IIS) 的服務。
備註
方法 RegisterChannel(IChannel, Boolean) 會 IChannel 從通道物件接收 介面。 通道必須是唯一的 ChannelName ,或者通道必須是匿名的。 如果 IChannel.ChannelName 設定為 null
或使用Emptyname
組態屬性,則通道為匿名。
您無法在 中註冊兩個具有相同名稱的 AppDomain通道。 根據預設,的名稱 HttpChannel 為 「HTTP」 而的名稱 TcpChannel 為 「tcp」。 因此,如果您想要註冊相同類型的兩個通道,您必須透過組態屬性為其中一個通道指定不同的名稱。
如需通道組態屬性的詳細資訊,請參閱 通道和格式器組態屬性 和 <通道> 元素 (樣本) 。
ensureSecurity
如果 參數設定為 true
,遠端系統會判斷通道是否實ISecurableChannel作 ,如果是,則啟用加密和數字簽名。 如果通道未實 ISecurableChannel作 ,就會擲回例外狀況。
注意
將設定 ensureSecurity
為 true
會在所有平台上擲回 RemotingException 通道的 HttpServerChannel 。 如果您想要使用安全的 HTTP 通道,則必須在 IIS 中裝載服務。