<serviceHostingEnvironment>
Este elemento define o tipo que o ambiente de alojamento do serviço instancia para um transporte específico. Se este elemento estiver vazio, é utilizado o tipo predefinido. Este elemento só pode ser utilizado nos ficheiros de configuração ao nível da aplicação ou do computador.
<configuração>
<system.serviceModel>
<serviceHostingEnvironment>
Syntax
<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 secções seguintes descrevem atributos, elementos subordinados e elementos principais.
Atributos
Atributo | Descrição |
---|---|
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 está definido como true , os pedidos dos serviços do Windows Communication Foundation (WCF) fluem através do pipeline HTTP ASP.NET e a comunicação através de protocolos não HTTP é proibida. Para obter mais informações, veja Serviços WCF e ASP.NET. |
minFreeMemoryPercentageToActivateService | Um número 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 de web.config de um serviço WCF resultará numa SecurityException execução do serviço. |
multipleSiteBindingsEnabled | Um valor booleano que especifica se vários enlaces do IIS por site estão ativados. O IIS é composto por web sites, 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 um ou mais enlaces do IIS. Um enlace do IIS fornece duas informações: um protocolo de enlace e informações de enlace. O protocolo de enlace define o esquema sobre o qual ocorre a comunicação e as informações de enlace são as informações utilizadas para aceder ao site. Um exemplo de um protocolo de enlace pode ser HTTP, enquanto as informações de enlace podem conter um endereço IP, Porta, cabeçalho do anfitrião, etc. O IIS suporta a especificação de vários enlaces do IIS por site, o que resulta em vários endereços base por esquema. No entanto, um serviço do Windows Communication Foundation (WCF) alojado num site permite vincular a apenas um baseAddress por esquema. Para ativar vários enlaces do IIS por site para um serviço do Windows Communication Foundation (WCF), defina este atributo como true . Repare que o enlace de vários sites é suportado apenas para o protocolo HTTP. O endereço dos pontos finais no ficheiro de configuração tem de ser um URI completo. |
Elementos Subordinados
Elemento | Descrição |
---|---|
<baseAddressPrefixFilters> | Uma coleção de elementos de configuração que especificam filtros de prefixo para os endereços base utilizados pelo anfitrião de serviço. |
<serviceActivations> | Uma secção de configuração que descreve as definições de ativação. |
<transportConfigurationTypes> | Uma coleção de elementos de configuração que identificam o tipo de um transporte específico. |
Elementos Principais
Elemento | Descrição |
---|---|
serviceModel | O elemento raiz de todos os elementos de configuração do Windows Communication Foundation (WCF). |
Observações
Por predefinição, os serviços WCF são executados lado a lado com ASP.NET em Domínios de Aplicações alojados (AppDomain). Apesar de o WCF e ASP.NET poderem coexistir no mesmo AppDomain, os pedidos WCF não são processados pelo pipeline http ASP.NET por predefinição. Como resultado, vários elementos da plataforma de aplicações ASP.NET não estão disponíveis para serviços WCF. Estas incluem
ASP.NET Autorização de Ficheiro/URL
Representação do ASP.NET
Estado da Sessão baseado em cookies
HttpContext.Current
Extensibilidade do Pipeline através de HttpModule personalizado
Se os seus serviços WCF precisarem de funcionar no contexto ASP.NET e comunicar apenas através de HTTP, pode utilizar o modo de compatibilidade de ASP.NET do WCF. Este modo é ativado quando o aspNetCompatibilityEnabled
atributo está definido como ao true
nível da aplicação. As implementações de serviços têm de declarar a sua capacidade de execução no modo de compatibilidade com a AspNetCompatibilityRequirementsAttribute classe. Quando o modo de compatibilidade estiver ativado,
ASP.NET Autorização de Ficheiro/URL é imposta antes da autorização do WCF. Uma decisão de autorização baseia-se na identidade ao nível do transporte do pedido. As identidades ao nível da mensagem são ignoradas.
As operações do serviço WCF começam a ser executadas no contexto de representação ASP.NET. Se a representação ASP.NET e a representação do WCF estiverem ativadas para um serviço específico, aplica-se o contexto de representação do WCF.
HttpContext.Current pode ser utilizado a partir do código do serviço WCF e os serviços são impedidos de expor pontos finais não HTTP.
Os pedidos WCF são processados pelo pipeline de ASP.NET. HttpModules que foram configurados para agir em pedidos recebidos também podem processar pedidos WCF. Estes podem incluir ASP.NET componentes da plataforma (por exemplo, SessionStateModule), bem como módulos de terceiros personalizados.
Exemplo
O seguinte exemplo de código mostra como ativar o Modo de Compatibilidade DO ASP.
Código
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>