<application name='Hello'>

   <service>

    <wellknown mode='SingleCall' type='Wrox.ProfessionalCSharp.Hello, RemoteHello' objectUri ='Hi' />

   </service>

   <channels>

    <channel type='System.Runtime.Remoting.Channels.Tcp.TcpChannel, System.Runtime.Remoting' port='6791' />

    <channel type='System.Runtime.Remoting.Channels.Http.HttpChannel, System.Runtime.Remoting' port='6792' />

   </channels>

  </application>

 </system.runtime.remoting>

</configuration>

Конфигурация клиента для хорошо известных объектов

Для хорошо известных объектов в клиентском конфигурационном файле wellknown.config необходимо определить сборку и канал. Типы для удаленного объекта можно найти в сборке RemoteHello.dll, Hi является именем объекта в канале, a URI для удаленного типа Wrox.ProfessionalCSharp.Hello — это tcp://localhost:6791/Hi. На клиенте также работает канал TCP, но на клиенте не определяется порт, поэтому выбирается свободный порт.

<configuration>

 <system.runtime.remoting>

  <application name='Client'>

   <client url='tcp:/localhost:6791/Hello'>

    <wellknown type = 'Wrox.ProfessionalCSharp.Hello, RemoteHello' url='tcp://localhost:6791/Hello/Hi' />

   </client>

   <channels>

    <channel type='System.Runtime.Remoting.Channels.Tcp.TcpChannel, System.Runtime.Remoting' />

   </channels>

  </application>

 </system.runtime.remoting>

</configuration>

Внесем небольшое изменение в конфигурационный файл и можем использовать канал HTTP (как видно в wellknownhttp.config):

<client url='http://localhost:6792/Hello'>

 <wellknown type='Wrox.ProfessionalCSharp.Hello, RemoteHello' url='http://localhost:6792/Hello/Hi' />

</client>

<channels>

 <channel type='System.Runtime.Remoting.Channels.Http.HttpChannel, System.Runtime.Remoting' />

</channels>

Серверная конфигурация для активизированных клиентом объектов

Преобразуя только конфигурационный файл (который находится в clientactivated.config), можно изменить сервер с активизированных сервером объектов на активизированные клиентом объекты. Здесь определяется подэлемент <activated> элемента <service>. С его помощью для серверной конфигурации должен быть определен атрибут type. Атрибут name элемента application определяет URI:

<configuration>

 <system.runtime.remoting>

  <application name='HelloServer'>

   <service>

    <activated type='Wrox.ProfessionalCSharp.Hello, RemoteHello' />

   </service>

   <channels>

    <channel type='System.Runtime.Remoting.Channels.Http.HttpChannel, System.Runtime.Remoting' ports='6788' />

    <channel type='System.Runtime.Remoting.Channels.Tcp.TcpChannel, System.Runtime.Remoting' ports='6789' /»

   </channels>

  </application>

 </system.runtime.remoting>

</configuration>

Клиентская конфигурация для активизированных клиентом объектов

Файл clientactivated.config определяет активированный клиентом удаленный объект с помощью атрибута url элемента <client> и атрибута type элемента <activated>:

<configuration>

 <system.runtime.remoting>

  <application>

   <client url='http://localhost:6788/HelloServer' >

    <activated type='Wrox.ProfessionalCSharp.Hello, RemoteHello' />

   </client>

   <channels>

    <channel type='System.Runtime.Remoting.Channels.Http.HttpChannel, System.Runtime.Remoting' />

    <channel type='System.Runtime.Remoting.Channels.Tcp.TcpChannel, System.Runtime.Remoting' />

   </channels>

  </application>

 </system.runtime.remoting>

</configuration>

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату