Вход/Регистрация
C# для профессионалов. Том II
вернуться

Ватсон Карли

Шрифт:

</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>

Серверный код, использующий конфигурационные файлы

В серверном коде необходимо сконфигурировать удаленное использование статического метода

Configure
из класса
RemotingConfiguration
. Здесь создаются экземпляры всех определяемых каналов. Может быть мы захотим также узнать о конфигурациях каналов из серверного приложения. Поэтому созданы статические методы
ShowActivatedServiceTypes
и
ShowWellKnovmServiceTypes
, которые вызываются после загрузки и запуска удаленной конфигурации:

public static void Main(string[] args) {

 RemotingConfiguration.Configure("HelloServer.exe.config");

 Console.WriteLine(

"Application: " + RemotingConfiguration.ApplicationName);

 ShowActivatedServiceTypes;

 ShowWellKnownServiceTypes;

 System.Console.WriteLine("hit to exit");

 System.Console.ReadLine;

 return;

}

Эти две функции показывают данные конфигурации хорошо известных и активированных клиентом типов:

public static void ShowWellKnownServiceTypes {

 WellKnownServiceTypeEntry[] entries =

RemotingConfiguration.GetRegisteredWellKnownServiceTypes;

 foreach (WellKnownServiceTypeEntry entry in entries) {

Console.WriteLine("Assembly: " + entry.AssemblyName);

Console.WriteLine("Mode: " + entry.Mode);

Console.WriteLine("URI " + entry.ObjectUri);

Console.WriteLine("Type: " + entry.TypeName);

 }

}

public static void ShowActivatedServiceTypes {

 ActivatedServiceTypeEntry[] entries =

RemotingConfiguration.GetRegisteredActivatedServiceTypes;

 foreach(ActivatedServiceTypeEntry entry in entries) {

Console.WriteLine("Assembly: " + entry.AssemblyName);

  • Читать дальше
  • 1
  • ...
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: