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

Ватсон Карли

Шрифт:

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

 }

}

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

В клиентском коде с помощью конфигурационного файла

client.exe.config
нужно сконфигурировать только удаленные службы. После этого можно использовать оператор new для создания новых экземпляров класса
Remote
независимо от того, происходит ли работа с активированными сервером или с активированными клиентов удаленными объектами. Но помните, что существует небольшая разница. Для активированных клиентом объектов теперь можно использовать произвольные конструкторы с помощью оператора
new
. Это невозможно для активированных сервером объектов и не имеет смысла в этом случае: объекты
SingleCall
не могут иметь состояния, так как они разрушаются вместе с каждым вызовом, объекты
Singleton
создаются только однажды. Вызов произвольных конструкторов полезен только для активированных клиентом объектов, так как только для этого вида объектов оператор new реально вызывает конструктор удаленного объекта:

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

Hello obj = new Hello;

if (obj == null) {

 Console.WriteLine("could not locate server");

 return 0;

}

for (int i=0; i < 5; i++) {

 Console.WriteLine(obj.Greeting("Christian"));

}

Службы времени жизни в конфигурационных файлах

Аренда конфигурации для удаленных серверов также может делаться с помощью конфигурационных файлов приложений. Элемент

<lifetime>
имеет атрибуты
leaseTime
,
sponsorshipTimeOut
,
renewOnCallTime
и
pollTime
:

<configuration>

 <system.runtime.remoting>

<application>

<lifetime leaseTime="15M" sponsorshipTimeOut="4M" renewOnCallTime="3M" pollTime="30s" />

</application>

 </system.runtime.remoting>

</configuration>

Используя конфигурационные файлы, можно изменить удаленную конфигурацию, редактируя файлы вместо работы с исходным кодом. Легко изменить канал для использования HTTP вместо TCP, изменить порт, имя канала, и т. д. С помощью добавления одной строки сервер может слушать два канала вместо одного.

Инструменты для файлов удаленной конфигурации

Не обязательно начинать создавать конфигурационный файл XML для .NET Remoting с чистого листа. Для этого существует несколько инструментов:

□ При использовании версии .NET Remoting Beta 1 можно найти пример

convertconfig.exe
в списке примеров Framework SDK. С помощью этого инструмента можно преобразовать использовавшийся ранее компактный формат файлов в новый формат на основе XML.

□ С помощью примера

configfilegen.exe
можно создать конфигурационный файл из сборки. Запустите эту программу без параметров, чтобы увидеть все возможные конфигурации. Следующая командная строка создает активированный клиентом (-а) конфигурационный файл для сервера (-s).

configfilegen -ia:RemoteHello.dll -ос:HelloServer.exe.config -s -a

Системный администратор использует утилиту .NET Admin, чтобы реконфигурировать существующие конфигурационные файлы. Утилиту .NET Admin можно запустить с помощью команды:

mmc mecorcfg.msc

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

Приложения хостинга

До этого момента все примеры серверов выполнялись на автономных (self-hosted) серверах .NET. Автономный сервер должен запускаться вручную. Удаленный сервер .NET может запускаться во множестве других типов приложений. В службе Windows сервер автоматически запускается во время старта, и кроме того, процесс может выполняться с полномочиями системной учетной записи. Создание служб Windows описано в главе 24.

Хостинг удаленных серверов в ASP.NET

B ASP.NET существует специальная поддержка для серверов .NET Remoting. ASP.NET может использоваться для автоматического запуска удаленных серверов. В противоположность приложениям exe, ASP.NET Remoting использует для конфигурации другой файл.

Для того чтобы использовать инфраструктуру Информационного сервера Интернета (IIS) и ASP.NET, необходимо создать класс, произвольный из

System.MarshalByRefObject
, который имеет конструктор по умолчанию. Использованный ранее код для нашего сервера с целью создания и регистрации канала больше не требуется; это делается средой выполнения ASP.NET. Необходимо только создать виртуальный каталог на сервере Web, который отображает каталог, куда помещается конфигурационный файл
web.config
. Сборка удаленного класса должна находиться в подкаталоге
bin
.

Чтобы сконфигурировать виртуальный каталог на сервере Web, воспользуйтесь Информационными службами ММС. Выберите Default Web Site и, открыв меню Action, создайте новый виртуальный каталог.

Конфигурационный файл

web.config
на сервере Web должен быть помещен в домашний каталог виртуального сайта Web. Согласно используемой по умолчанию конфигурации IIS, используемый канал слушает порт 80.

<configuration>

 <system.runtime.remoting>

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

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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