Partilhar via


<ServiceHostingEnvironment>

Este elemento define o tipo que o ambiente de alojamento de serviços instancia para um determinado transporte. Se este elemento estiver vazio, é usado o tipo padrão. Este elemento só pode ser usado nos ficheiros de configuração ao nível da aplicação ou da máquina.

<configuração>
   <system.serviceModel>
     <ServiceHostingEnvironment>

Sintaxe

<serviceHostingEnvironment aspNetCompatibilityEnabled="Boolean"
                           minFreeMemoryPercentageToActivateService="Integer"
                           multipleSiteBindingsEnabled="Boolean">
  <baseAddressPrefixFilters>
    <add prefix="string" />
  </baseAddressPrefixFilters>
  <serviceActivations>
    <add factory="String"
         service="String" />
  </serviceActivations>
  <transportConfigurationTypes>
    <add name="String"
         transportConfigurationType="String" />
  </transportConfigurationTypes>
</serviceHostingEnvironment>

Atributos e Elementos

As seções a seguir descrevem atributos, elementos filho e elementos pai.

Attributes

Attribute Description
aspNetCompatibilityEnabled Um valor booleano que indica se o modo de compatibilidade ASP.NET foi ativado para a aplicação atual. A predefinição é false.

Quando este atributo é definido para true, os pedidos para os serviços da Windows Communication Foundation (WCF) fluem através do pipeline ASP.NET HTTP, e a comunicação por protocolos não HTTP é proibida. Para mais informações, consulte Serviços e ASP.NET WCF.
minFreeMemoryPercentageToActivateService Um inteiro que especifica a quantidade mínima de memória livre que deve estar disponível para o sistema, antes de um serviço WCF poder ser ativado. Atenção: Especificar este atributo juntamente com a confiança parcial no ficheiro web.config de um serviço WCF resultará em um SecurityException quando o serviço é executado.
multipleSiteBindingsEnabled Um valor booleano que especifica se múltiplas ligações IIS por site estão ativadas.

O IIS consiste em sites web, que são contentores para aplicações virtuais que contêm diretórios virtuais. A aplicação num site pode ser acedida através de uma ou mais ligações IIS. Uma ligação IIS fornece duas informações específicas: um protocolo de ligação e informação de ligação. O protocolo de ligação define o esquema sobre o qual ocorre a comunicação, e a informação de ligação é a informação utilizada para aceder ao site. Um exemplo de protocolo de binding pode ser o HTTP, enquanto a informação de binding pode conter um endereço IP, porta, cabeçalho do host, etc.

O IIS suporta a especificação de múltiplas ligações IIS por site, o que resulta em múltiplos endereços base por esquema. No entanto, um serviço da Windows Communication Foundation (WCF) alojado num site permite ligar apenas a um baseAddress por esquema.

Para permitir múltiplas ligações IIS por site para um serviço Windows Communication Foundation (WCF), defina este atributo para true. Note que a ligação múltipla de sites é suportada apenas para o protocolo HTTP. O endereço dos endpoints no ficheiro de configuração precisa de ser um URI completo.

Elementos filho

Elemento Description
<BaseAddressPrefixFilters> Uma coleção de elementos de configuração que especificam filtros prefixos para os endereços base usados pelo anfitrião do serviço.
<serviçoAtivações> Uma secção de configuração que descreve as definições de ativação.
<transportConfigurationTypes> Um conjunto de elementos de configuração que identificam o tipo de um determinado transporte.

Elementos Principais

Elemento Description
ServiceModel O elemento raiz de todos os elementos de configuração do Windows Communication Foundation (WCF).

Observações

Por defeito, os serviços WCF executam lado a lado com ASP.NET em Domínios de Aplicação alojados (AppDomain). Embora o WCF e o ASP.NET possam coexistir no mesmo AppDomain, os pedidos WCF não são processados pelo ASP.NET HTTP Pipeline por defeito. Como resultado, vários elementos da plataforma de aplicação ASP.NET não estão disponíveis para os serviços WCF. Estes incluem

  • ASP.NET Autorização de Ficheiro/URL

  • ASP.NET Imitação

  • Estado de Sessão baseado em cookies

  • HttpContext.Current

  • Extensibilidade do Pipeline via HttpModule personalizado

Se os seus serviços WCF precisarem de funcionar no contexto ASP.NET e comunicarem apenas via HTTP, pode usar o modo de compatibilidade ASP.NET do WCF. Este modo é ativado quando o aspNetCompatibilityEnabled atributo está definido para true ao nível da aplicação. As implementações de serviços devem declarar a sua capacidade de correr em modo de compatibilidade usando a AspNetCompatibilityRequirementsAttribute classe. Quando o modo de compatibilidade está ativado,

  • ASP.NET A Autorização de Ficheiro/URL é aplicada antes da autorização WCF. Uma decisão de autorização baseia-se na identidade ao nível de transporte do pedido. As identidades ao nível da mensagem são ignoradas.

  • As operações de serviço WCF começam a ser executadas no contexto de ASP.NET personificação. Se tanto ASP.NET personificação como WCF estiverem ativadas para um serviço específico, aplica-se o contexto de personificação WCF.

  • O HttpContext.Current pode ser usado a partir do código de serviço WCF, e os serviços são impedidos de expor endpoints não HTTP.

  • Os pedidos WCF são processados pelo pipeline ASP.NET. Os HttpModules configurados para agir sobre pedidos recebidos também podem processar pedidos WCF. Estes podem incluir componentes ASP.NET plataforma (por exemplo, SessionStateModule), bem como módulos personalizados de terceiros.

Example

O exemplo de código seguinte mostra como ativar o Modo de Compatibilidade ASP.

Código

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

Consulte também