Compartilhar via


Ativação com base em configuração no ISS e WAS

Normalmente, ao hospedar um serviço WCF (Windows Communication Foundation) no IIS (Serviços de Informações da Internet) ou no WAS (Serviço de Ativação de Processos do Windows), você precisa fornecer um arquivo .svc. O arquivo .svc contém o nome do serviço e uma fábrica de hosts de serviço personalizados opcional. Esse arquivo extra adiciona sobrecarga 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 com base em configuração

A ativação baseada em configuração usa os metadados que costumavam ser colocados no arquivo .svc e os coloca no arquivo Web.config. Dentro do elemento <serviceHostingEnvironment> há um elemento <serviceActivations>. Dentro do elemento <serviceActivations> há um ou mais elementos <add>, um para cada serviço hospedado. O elemento <add> contém atributos que permitem definir o endereço relativo do serviço e o tipo de serviço ou uma fábrica de hosts de serviço. O código de exemplo de configuração a seguir mostra como essa seção é usada.

Observação

Cada elemento <add> precisa especificar um atributo de fábrica ou de serviço. A especificação de atributos de serviço e de fábrica é permitido.

<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 em um assembly compilado no diretório Bin do aplicativo.

Observação

  • Quando a ativação baseada em configuração é usada, não há suporte para código embutido em arquivos .svc.
  • O atributo relativeAddress precisa ser definido como um endereço relativo, como "<subdirectório>/service.svc" ou "~/<subdirectório/service.svc".
  • Uma exceção de configuração será gerada 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 do computador e do site são herdados pelos aplicativos virtuais.
  • Os registros de um arquivo de configuração têm precedência sobre as configurações de um arquivo .svc, .xamlx, .xoml ou outro arquivo.
  • Qualquer ‘\’ (barra invertida) em um URI enviado ao IIS/ao WAS é convertida automaticamente em ‘/’ (barra). Se for adicionado um endereço relativo que contenha uma ‘\’ e você enviar um URI do IIS que use o endereço relativo, a barra invertida será convertida em uma barra e o IIS não poderá correspondê-la com o endereço relativo. O IIS envia informações de rastreamento que indicam que não há correspondências encontradas.

Confira também