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