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 接口。 通道的 必须是唯一 ChannelName 的,或者通道必须是匿名的。 如果使用 IChannel.ChannelName 配置属性将 设置为 null
或 Empty ,则通道是匿名的 name
。
不能在 中注册两个 AppDomain同名的通道。 默认情况下, HttpChannel 的名称为“http”, TcpChannel 名称为“tcp”。因此,如果要注册两个相同类型的通道,则必须通过配置属性为其中一个通道指定不同的名称。
有关通道配置属性的详细信息,请参阅 HttpChannel和 <通道> 元素 (模板) 。
适用于
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 信道,请使用 Internet 信息服务 (IIS) 承载服务。
注解
方法 RegisterChannel(IChannel, Boolean) 从通道对象接收 IChannel 接口。 通道的 必须是唯一 ChannelName 的,或者通道必须是匿名的。 如果使用 IChannel.ChannelName 配置属性将 设置为 null
或 Empty ,则通道是匿名的 name
。
不能在 中注册两个 AppDomain同名的通道。 默认情况下, HttpChannel 的名称为“http”, TcpChannel 名称为“tcp”。 因此,如果要注册两个相同类型的通道,则必须通过配置属性为其中一个通道指定不同的名称。
有关通道配置属性的详细信息,请参阅 通道和格式化程序配置属性 和 <通道> 元素 (模板) 。
ensureSecurity
如果 参数设置为 true
,远程处理系统将确定通道是否实现 ISecurableChannel,如果是,则启用加密和数字签名。 如果通道不实现 ISecurableChannel,则会引发异常。
注意
设置为 ensureSecurity
会RemotingException为所有平台上的HttpServerChannel通道引发 。true
如果要使用安全的 http 通道,则必须在 IIS 中托管服务。