Регистрация канала

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

В системе удаленного взаимодействия .NET объекты каналов обеспечивают передачу данных, когда клиент вызывает метод удаленного объекта. Удаленная служба может поддерживать несколько каналов, и ответственность за выбор канала, который лучше всего подходит для текущих требований, лежит на клиентском приложении. Если в файле конфигурации клиента канал не задан, и клиент вызывает метод удаленного объекта, система удаленного взаимодействия .NET загрузит одну из реализацией каналов по умолчанию (HttpChannel или TcpChannel), если один из них поддерживает сетевой протокол клиента. Если же клиент ожидает получения функций обратного вызова или событий, необходимо задать клиентский канал, который будет ожидать такой функции обратного вызова.

Канал можно зарегистрировать двумя способами. Можно объявить шаблон канала, а затем создать на него ссылку в приложении, либо можно задать все сведения о канале непосредственно в приложении. Шаблонов каналов по умолчанию в файле Machine.config должно быть достаточно для большинства приложений, и на них можно ссылаться из тега <channels> (внутри тега <application>), используя атрибут ref тега <channel> и значение tcp или http. При использовании канала HttpChannel задавать атрибут port не требуется, однако это нужно сделать при использовании канала TcpChannel.

Если приложение предоставляет серверный объект, необходимо зарегистрировать канал, чтобы клиентские приложения могли взаимодействовать с этим объектом. Это можно сделать программным образом с помощью метода ChannelServices.RegisterChannel или путем регистрации канала в файле конфигурации.

Если приложение использует объекты, необходимо зарегистрировать канал, с помощью которого можно обратиться к ним (это обязательно делать, если приложение будет ожидать функций обратного вызова или событий), если только объект службы не использует один из клиентских каналов по умолчанию, перечисленных в файле конфигурации компьютера.

Подробные примеры см. в разделе Пример удаленного взаимодействия. Поставщик приемников каналов, а также в описаниях элемента экземпляра <channel> и элемента шаблона <channel>.

Приемники каналов

Приемники каналов позволяют разработчикам настроить сериализацию и передачу сообщений между клиентом и удаленными службами. Приемники каналов создаются с помощью поставщиков приемников; клиентские поставщики приемников и серверные поставщики приемников можно задать в файле конфигурации. Серверные приемники каналов вызываются, когда сообщения отправляются на сервер и с сервера, и задаются в элементе <serverProviders>. Клиентские приемники вызываются, когда сообщения отправляются на клиент и с клиента, и задаются в элементе <clientProviders>.

Каналы должны иметь приемник модуля форматирования. Приемники модуля форматирования сериализуют сообщения. Платформа .NET Framework включает модули форматирования для двоичной сериализации и сериализации SOAP.

Важно отметить, что в случае задания пользовательского модуля форматирования система удаленного взаимодействия .NET полагает, что все каналы заданы в нужном порядке. Поэтому при объявлении пользовательского канала, использующего пользовательский модуль форматирования, необходимо также задать другие поставщики, которые должны присутствовать в цепочке приемников канала. Приемники канала по умолчанию добавляться не будут.

См. также

Задачи

Как создать шаблон канала в файле конфигурации

Справочник

System.Runtime.Remoting.RemotingConfiguration Class

Основные понятия

Конфигурация удаленных приложений
Конфигурация удаленного объекта

Другие ресурсы

Регистрация удаленных объектов с использованием файлов конфигурации
Общие сведения о средствах удаленного взаимодействия платформы .NET Framework
Общие сведения о средствах удаленного взаимодействия платформы .NET Framework