Чтение онлайн

на главную - закладки

Жанры

C# для профессионалов. Том II

Ватсон Карли

Шрифт:

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

□ Элемент

<activated>
используется для активированных клиентом объектов. С помощью атрибута
type
должны быть определены тип данных и сборка как для клиентского, так и для серверного приложений:

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

□ Для определения канала, используется элемент

<channel>
. Это подэлемент
<channels>
, так что совокупность каналов можно сконфигурировать для одного
приложения. Его использование аналогично для клиентов и серверов. Атрибут
type
используется для определения типа канала и сборки. Атрибут
port
является номером порта, который нужен только для серверной конфигурации:

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

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

Этот пример файла

wellknown.config
имеет значение
Hello
для свойства
Name
. Мы используем канал TCP для прослушивания порта 6791, а канал HTTP для прослушивания порта 6792. Класс удаленного объекта —
Wrox.ProfessionalCSharp.Hello
в сборке
RemoteHello.dll
, объект в канале называется
Hi
, и используется режим
SingleCall
:

<configuration>

 <system.runtime.remoting>

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

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

Я тебя не отпускал

Рам Янка
2. Черкасовы-Ольховские
Любовные романы:
современные любовные романы
6.55
рейтинг книги
Я тебя не отпускал

Орден Багровой бури. Книга 3

Ермоленков Алексей
3. Орден Багровой бури
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Орден Багровой бури. Книга 3

Звезда сомнительного счастья

Шах Ольга
Фантастика:
фэнтези
6.00
рейтинг книги
Звезда сомнительного счастья

Прометей: каменный век II

Рави Ивар
2. Прометей
Фантастика:
альтернативная история
7.40
рейтинг книги
Прометей: каменный век II

Жнецы Страданий

Казакова Екатерина
1. Ходящие в ночи
Фантастика:
фэнтези
9.32
рейтинг книги
Жнецы Страданий

Враг из прошлого тысячелетия

Еслер Андрей
4. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Враг из прошлого тысячелетия

Громовая поступь. Трилогия

Мазуров Дмитрий
Громовая поступь
Фантастика:
фэнтези
рпг
4.50
рейтинг книги
Громовая поступь. Трилогия

Надуй щеки! Том 5

Вишневский Сергей Викторович
5. Чеболь за партой
Фантастика:
попаданцы
дорама
7.50
рейтинг книги
Надуй щеки! Том 5

Лэрн. На улицах

Кронос Александр
1. Лэрн
Фантастика:
фэнтези
5.40
рейтинг книги
Лэрн. На улицах

Комбинация

Ланцов Михаил Алексеевич
2. Сын Петра
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Комбинация

Стеллар. Заклинатель

Прокофьев Роман Юрьевич
3. Стеллар
Фантастика:
боевая фантастика
8.40
рейтинг книги
Стеллар. Заклинатель

Решала

Иванов Дмитрий
10. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Решала

Месть бывшему. Замуж за босса

Россиус Анна
3. Власть. Страсть. Любовь
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Месть бывшему. Замуж за босса

Товарищ "Чума" 3

lanpirot
3. Товарищ "Чума"
Фантастика:
городское фэнтези
попаданцы
альтернативная история
5.00
рейтинг книги
Товарищ Чума 3