Хостинг удаленных объектов с использованием IIS

Хостинг удаленный службы под IIS еще проще, чем построение службы Windows, поскольку IIS предварительно запрограммирован на прием входящих запросов HTTP через порт 80. Теперь, учитывая, что IIS — это веб-сервер, должно быть ясно, что IIS может размещать в себе только удаленные объекты, использующий тип канала HttpChannel (в отличие от служб Windows, которые могут также применять тип TcpChannel). Если это не кажется ограничением, выполните следующие шаги, чтобы использовать поддержку удаленного взаимодействия IIS.

1. На жестком диске создайте новую папку для хранения CarGeneralAsm.dll. Внутри этой папки создайте подкаталог по имени Bin. Теперь скопируйте CarGeneralAsm.dll в этот подкаталог (например, C:\IISCarService\Bin).

2. Откройте аплет Internet Information Services панели управления на машине-хосте.

3. Выполните щелчок правой кнопкой мыши на узле Default Web Site (Веб-узел по умолчанию) и выберите в контекстном меню пункт New_Virtual Sirectory (Создать_Виртуальный каталог).

4. Создайте виртуальный каталог, отображаемый на созданную ранее папку (C:\IISCarService). Остальные установки по умолчанию, представленные мастером создания виртуальных каталогов (New Virtual Directory Wizard) можно оставить без изменений.

5. И, наконец, создайте новый конфигурационный файл по имени web.config для управления тем, как этот виртуальный каталог должен регистрировать удаленный тип (см. код ниже). Сохраните этот файл в корневой папке (в данном примере — в C:\IISCarService).

<configuration>

<system.runtime.remoting>

<application>

<service>

<wellknown mode="Singleton"

type="CarGeneralAsm.CarProvider, CarGeneralAsm"

objectUri="carprovider.soap" />

</service>

<channels>

<channel ref="http"/>

</channels>

</application>

</system.runtime.remoting>

</configuration>

Теперь сборка CarGeneralAsm.dll сконфигурирована для принятия запросов HTTP под IIS, и можно обновить файл *.config клиентской стороны, как показано ниже (используя имя IIS-хоста):

<configuration>

<system.runtime.remoting>

<application>

<client displayName = "CarClient">

<wellknown

type="CarGeneralAsm.CarProvider, CarGeneralAsm"

url="http://NameTheRemoteIISHost/IISCarHost/carprovider.soap"/>

</client>

<channels>

<channel ref="http"/>

</channels>

</application>

</system.runtime.remoting>

</configuration>

После этого можно запускать клиентское приложение, как и раньше.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: