Элемент <channel> (шаблон)

Этот раздел относится к технологии прежних версий, которая сохраняется для обеспечения обратной совместимости с существующими приложениями и не рекомендуется для разработки новых приложений. Сейчас распределенные приложения следует создавать с помощью  Windows Communication Foundation (WCF).

Содержит шаблон канала, который приложение может указать и настроить для взаимодействия или ожидания запросов удаленных объектов. Везде, где можно зарегистрировать для использования канал, можно задать атрибут id элемента channel этого экземпляра в атрибуте ref этого шаблона. Этот элемент может встречаться в файле конфигурации приложения и в файле конфигурации компьютера.

Schema Hierarchy

<configuration>
  Элемент <system.runtime.remoting>
    Элемент <channels> (шаблон)
      Элемент <channel> (шаблон)

Синтаксис

<channel  
   id="channelID" 
   type="ChannelType, ChannelAssembly"
   displayName="displayName"
   customChannelProperty="customChannelValue"
   <!-- Available only to client configurations -->
   delayLoadAsClientChannel="true|false"
/>

Атрибуты и элементы

В следующих разделах описываются атрибуты, дочерние и родительские элементы.

Атрибуты

Атрибут Описание

customChannelProperty

Необязательный атрибут.

Задает поддерживаемое пользовательское свойство канала. Можно задать любое число свойств канала, которые могут поддерживаться каналом. Для пользовательского свойства канала задается пара "атрибут-значение". Например:

<channel id="CustomChannel" type="Namespace.CustomChannel, CustomChannels" customProperty="PropertyValue"/>

delayLoadAsClientChannel

Необязательный атрибут.

Указывает, нужно ли загружать этот канал, если клиент не зарегистрировал канал для приложения. Атрибут имеет логическое значение и влияет только на работу клиента. Значение true указывает, что система удаленного взаимодействия .NET Framework должна проверить этот канал во время выполнения, чтобы узнать, поддерживает ли он подключение клиентов с помощью конкретного протокола, заданного в URL-адресе уделенной активации. Если значение не указано, используется значение по умолчанию false.

displayName

Необязательный атрибут.

Используется средством настройки .NET Framework для создания списка каналов, используемых этим приложений. Система удаленного взаимодействия .NET Framework не использует этот атрибут.

id

Обязательный атрибут.

Задает строку, которая используется приложениями для определения канала при регистрации. Чтобы задать ссылку на данный шаблон канала, укажите этот атрибут в качестве значения атрибута ref в элементе экземпляра channel.

Дочерние элементы

Элемент Описание

<serverProviders>

Содержит поставщики приемников каналов для приемников, которые вставляются в цепочку вызовов приемников канала на стороне сервера. Если этот параметр задан, он полностью переопределяет значения по умолчанию для данного канала. Может указываться в элементе шаблона <channel> один раз.

<clientProviders>

Содержит поставщики приемников каналов для приемников, которые вставляются в цепочку вызовов приемников канала на стороне клиента. Если этот параметр задан, он полностью переопределяет значения по умолчанию для данного канала. Может указываться в элементе шаблона <channel> один раз.

Родительские элементы

Элемент Описание

channels

Содержит шаблоны канала, которые используются приложением для взаимодействия с удаленными объектами. Каналы, объявленные в рамках этого элемента, доступны для ссылки в любой системе, в которой зарегистрирован канал.

configuration

Корневой элемент в любом файле конфигурации, используемом средой CLR и приложениями платформы .NET Framework.

system.runtime.remoting

Задает корневой элемент для раздела конфигурации ASP.NET.

Замечания

Шаблоны каналов могут указываться в файле конфигурации компьютера, файле приложения или в любом другом файле, загружаемом с помощью вызова метода RemotingConfiguration.Configure().

Примеры

В следующем файле конфигурации элемент шаблона <channels> используется для объявления HttpChannel с id httpbinary, который использует BinaryClientFormatterSink для сериализации удаленных вызовов. Затем в нем указывается, что это клиентское приложение должно использовать конкретную конфигурацию канала путем указания ref="httpbinary" в элементе экземпляра <channel> в рамках элемента <application>. Наконец, добавляется поставщик приемника канала «propsetter» и передаются некоторые пользовательские элементы конфигурации, которые будут использоваться этим поставщиком приемника канала. Обратите внимание, что при любом использовании атрибута type для указания типа в сборке, находящейся в глобальном кэше сборок, требуется указывать полную информацию о типе, включая версию, язык и региональные параметры, а также сведения об открытом ключе. Эти сведения не указаны в атрибутах type в следующем примере только для краткости изложения.

<configuration>
   <system.runtime.remoting>
      <channelSinkProviders>
         <clientProviders>
            <provider 
               id="propsetter" 
               type="ChannelSinkPropertySetterProvider, PropsSink" 
            />
         </clientProviders>
      <channels>
         <channel 
            type="System.Runtime.Remoting.Channels.Http.HttpChannel, System.Runtime.Remoting, ...." 
            id="httpbinary"
         >
            <clientProviders>
               <formatter                   type="System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider, System.Runtime.Remoting, ...."
               />
            </clientProviders>
         </channel>
      </channels>
      <application>
         <channels>
            <channel ref="httpbinary">
               <clientProviders>
                  <provider 
                     ref="propsetter" 
                     username="somename" 
                     writeToConsole="true"
                  >
                     <endpoint url="contoso.com:9000" someProperty="xyz" />
                     <endpoint url="contoso.com:9001" someProperty="123" />
                  </provider>
               </clientProviders>
            </channel>
         </channels>
         <client>
            <wellknown 
               url="http://computername:80/RemoteType.rem"
               type="RemoteType, RemoteAssembly"
            />
         </client>
      </application>
   </system.runtime.remoting>
</configuration>

См. также

Справочник

Схема параметров удаленного взаимодействия
HttpChannel
HttpClientChannel
HttpServerChannel
TcpChannel
TcpClientChannel
TcpServerChannel

Дата сборки: 2010-02-13