<channel> 元素(实例)

本主题介绍一项传统技术,保留该技术是为了向后兼容现有的应用程序,不建议对新的开发使用该技术。现在应该使用  Windows Communication Foundation (WCF) 来开发分布式应用程序。

配置应用程序用来与远程对象进行通信的信道。还可以声明和配置一个不是信道模板的新信道。此元素可能出现在应用程序配置文件和计算机配置文件中。

Schema Hierarchy

<configuration>
  <system.runtime.remoting> 元素
    <application> 元素
      <channels> 元素(实例)
        <channel> 元素(实例)

语法

<!-- Either reference a channel template --> 
<channel  
   ref="channelRef" 
   displayName="name"
   port="port"
/>
<!-- Or declare a particular channel instance -->
<channel 
   type="ChannelType, ChannelAssembly"
   displayName="name"
   port="port"
   customChannelProperty="propertyValue"
/>

特性和元素

以下几节描述了特性、子元素和父元素。

特性

特性 说明

ref

可选的特性。

指示客户端要注册以供使用的信道模板的 id。如果指定 ref 特性,则不需要指定 type 特性。

.NET Framework 远程处理提供三种信道实现:“http”、“tcp”和“ipc”。有关选择信道实现的更多信息,请参见选择信道

displayName

可选的特性。

.NET Framework 配置工具用来创建此应用程序已注册的信道列表。.NET Framework 远程处理系统不使用此特性。

type

可选的特性。

指示信道的完整类型名和信道实现所在的程序集的名称。在包含程序集位于全局程序集缓存中时,这包括所有版本、区域性和公钥信息。如果不使用 ref 特性,则此特性是必需的。

.NET Framework 远程处理提供三种信道实现:“http”、“tcp”和“ipc”。有关选择信道实现的更多信息,请参见选择信道

port

可选的特性。

指示一个合适的端口特性。例如,如果希望信道在某个端口上侦听,可以在此指定端口特性。某些信道(如 TcpChannel)需要端口规范。其他信道(如 HttpChannel)具有默认端口,所以不需要存在此特性。如果正在生成客户端,并将 0(零)指定为端口,则 .NET Framework 远程处理系统将为您选择一个合适的端口。如果没有为客户端信道指定端口,则客户端将无法接收来自远程对象的回调函数。

portName

IpcChannelIpcServerChannel 的必需特性。指定服务器将公开的端口的名称。

<customChannelProperty>

可选的特性。

指示支持的自定义信道属性。可以指定信道可能支持的任意数量的信道属性。应使用特性/值对指定自定义信道属性。例如:

<channel 
   ref="CustomChannel" 
   port="61000"   customProperty="PropertyValue" 
/>

useIpAddress

一个布尔值(truefalse),指定是否要使用发布 URL 中的 IP 地址而不使用计算机名称。例如,无线网络通常在便携式计算机在网络中移动时变换它的 IP 地址。如果将此值指定为 false,则将使用计算机名称(而不是地址),这样远程通信在漫游时就不会断开连接。默认值为 true。当对服务器信道使用 machineName 属性时,此值可能被该属性重写。

machineName

一个字符串,指定用于当前信道的计算机名称。如果用于服务器信道,将重写 useIpAddress

注意   通常应该使用计算机的域名系统 (DNS) 名称,但如果特定网络接口卡 (NIC)(通常是无线 NIC)的 IP 地址在快速变动,则必须将应用程序配置为使用 machineName 以使远程处理能够通过 DNS 找到计算机。但是,当计算机名没有以合理的速度解析时(或者根本不解析时),以及当计算机有多个物理或虚拟的 NIC(对于拨号连接或 VPN 网络适配器,通常是虚拟 NIC)时,您应该将 machineName 属性设置为当前用于该连接的 NIC 的 IP 地址。

子元素

元素 说明

<serverProviders>

包含要插入到服务器端信道接收器调用链中的接收器的接收器提供程序。如果指定,则它们完全重写信道的默认值。可在 <channel> 元素中出现一次。

<clientProviders>

包含要插入到客户端信道接收器调用链中的接收器的接收器提供程序。如果指定,则它们完全重写信道的默认值。可在 <channel> 元素中出现一次。

父元素

元素 说明

application

包含有关应用程序使用和公开的远程对象的信息。

channels

包含应用程序用来与远程对象进行通信的信道。此元素配置信道模板,或声明与指定的应用程序一起使用的新信道。

configuration

公共语言运行时和 .NET Framework 应用程序所使用的每个配置文件中的根元素。

system.runtime.remoting

包含有关远程对象和信道的信息。

备注

在计算机配置文件中指定了系统提供的 HttpChannelTcpChannelIpcChannel。它们的 id 特性分别是“http”、“tcp”和“ipc”。

示例

下面的配置文件为客户端应用程序声明远程类型的位置,并使用 <channels> 实例元素指定 .NET Framework 远程处理系统应查找一个合适的端口,以便从该端口连接到服务器对象,并且指定它应使用默认的 HttpChannel

<configuration>
   <system.runtime.remoting>
      <application>
         <client>
            <wellknown 
               type="RemoteType, RemoteAssembly"
               url="http://computername:8080/RemoteType.rem"
            />
         </client>
         <channels>
            <channel 
               ref="http" 
               port="0"
            />
         </channels>
      </application>
   </system.runtime.remoting>
</configuration>

另请参见

参考

远程处理设置架构
HttpChannel
HttpClientChannel
HttpServerChannel
TcpChannel
TcpClientChannel
TcpServerChannel
IpcChannel
IpcClientChannel
IpcServerChannel

生成日期:2010-02-13