Активация на основе конфигурации в IIS и WAS
Обычно при размещении службы Windows Communication Foundation (WCF) в службы IIS (IIS) или службе активации процесса Windows (WAS) необходимо предоставить SVC-файл. SVC-файл содержит имя службы, а также дополнительную пользовательскую фабрику узла службы. С помощью этого дополнительного файла добавляются служебные данные по управлению. Возможность активации на основе конфигурации снимает требование по наличию SVC-файла и, следовательно, по наличию связанных служебных данных.
Активация на основе конфигурации
Активация на основе конфигурации принимает метаданные, которые используются для размещения в SVC-файле, и помещает их в файл Web.config. <serviceHostingEnvironment>
В элементе есть <serviceActivations>
элемент. В элементе <serviceActivations>
находятся один или несколько <add>
элементов для каждой размещенной службы. Элемент <add>
содержит атрибуты, позволяющие задать относительный адрес службы и тип службы или фабрику узлов службы. В следующем примере конфигурации показано, каким образом используется этот раздел.
Примечание.
Каждый <add>
элемент должен указывать службу или атрибут фабрики. Можно указать и атрибут службы, и атрибут фабрики.
<serviceHostingEnvironment>
<serviceActivations>
<add relativeAddress="MyServiceAddress" service="Service" factory="MyServiceHostFactory"/>
</serviceActivations>
</serviceHostingEnvironment>
Такой код, показанный в файле Web.config, позволяет поместить исходный код службы в каталог App_Code приложения или откомпилированную сборку в каталог Bin приложения.
Примечание.
- При использовании активации на основе конфигурации, встроенный программный код в SVC-файлах не поддерживается.
- Атрибут
relativeAddress
должен иметь относительный адрес,< например sub-directory/service.svc или ~/<sub-directory>/service.svc. - Если зарегистрирован относительный адрес, который не содержит известного расширения имени, связанного с WCF, то будет создано исключение конфигурации.
- Относительный адрес указывается относительно корневого каталога виртуального приложения.
- Поскольку модель конфигурации имеет иерархическую структуру, относительный адрес, который зарегистрирован на уровне компьютера и узла, наследуется виртуальными приложениями.
- Регистрация в файле конфигурации имеет более высокий приоритет, чем параметры в SVC-файле, XAMLX-файле, XOML-файле и других файлах.
- Все символы обратной косой черты «\» в URI, отправляемых в IIS/WAS, автоматически преобразуются в символы косой черты «/». Если добавляемый относительный адрес содержит символ «\», а в IIS отправлен URI, который использует относительный адрес, то символ обратной косой черты преобразуется в символ косой черты и IIS не может сопоставить его с относительным адресом. Службы IIS отправляют сведения трассировки, которые указывают, что соответствие не найдено.