Ativação baseada em configuração no IIS e no WAS
Normalmente, ao hospedar um serviço WCF (Windows Communication Foundation) em Serviços de Informações da Internet (IIS) ou Serviço de Ativação de Processos do Windows (WAS), você deve fornecer um arquivo .svc. O arquivo .svc contém o nome do serviço e uma fábrica de host de serviço personalizado opcional. Esse arquivo adicional adiciona sobrecarga de capacidade de gerenciamento. O recurso de ativação baseado em configuração remove o requisito de ter um arquivo .svc e, portanto, a sobrecarga associada.
Ativação baseada em configuração
A ativação baseada em configuração pega os metadados que costumavam ser colocados no arquivo .svc e os coloca no arquivo Web.config. Dentro do<serviceHostingEnvironment>
elemento há um <serviceActivations>
elemento . Dentro do <serviceActivations>
elemento estão um ou mais <add>
elementos, um para cada serviço hospedado. O <add>
elemento contém atributos que permitem definir o endereço relativo para o serviço e o tipo de serviço ou uma fábrica de host de serviço. O código de exemplo de configuração a seguir mostra como esta seção é usada.
Nota
Cada <add>
elemento deve especificar um serviço ou um atributo de fábrica. É permitido especificar os atributos de serviço e de fábrica.
<serviceHostingEnvironment>
<serviceActivations>
<add relativeAddress="MyServiceAddress" service="Service" factory="MyServiceHostFactory"/>
</serviceActivations>
</serviceHostingEnvironment>
Com isso no arquivo Web.config, você pode colocar o código-fonte do serviço no diretório App_Code do aplicativo ou um assembly cumprido no diretório Bin do aplicativo.
Nota
- Ao usar a ativação baseada em configuração, o código embutido em arquivos .svc não é suportado.
- O
relativeAddress
atributo deve ser definido como um endereço relativo, como "<subdiretório>/service.svc" ou "~/<subdiretório/service.svc". - Uma exceção de configuração será lançada se você registrar um endereço relativo que não tenha uma extensão conhecida associada ao WCF.
- O endereço relativo especificado é relativo à raiz do aplicativo virtual.
- Devido ao modelo hierárquico de configuração, os endereços relativos registrados no nível da máquina e do site são herdados por aplicativos virtuais.
- Os registros em um arquivo de configuração têm precedência sobre as configurações em um arquivo .svc, .xamlx, .xoml ou outro.
- Qualquer '\' (barras invertidas) em um URI enviado ao IIS/WAS é automaticamente convertido em um '/' (barra para frente). Se for adicionado um endereço relativo que contenha um '\' e você enviar ao IIS um URI que use o endereço relativo, a barra invertida será convertida em uma barra invertida e o IIS não poderá correspondê-lo ao endereço relativo. O IIS envia informações de rastreamento que indicam que não foram encontradas correspondências.