<serviceHostingEnvironment>
Este elemento define el tipo en el que el entorno de host de servicio crea instancias para un transporte determinado. Si este elemento está vacío, se usa el tipo predeterminado. Este elemento solo se puede usar en los archivos de configuración del nivel de aplicación o equipo.
Jerarquía del esquema
<<system.serviceModel>>
<serviceHostingEnvironment>
Sintaxis
<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 y elementos
En las siguientes secciones se describen los atributos, elementos secundarios y elementos primarios.
Atributos
Atributo | Descripción |
---|---|
aspNetCompatibilityEnabled |
Un valor booleano que indica si se ha activado el modo de compatibilidad de ASP.NET para la aplicación actual. El valor predeterminado es false. Cuando este atributo se establece en true, solicita flujo de servicios a Windows Communication Foundation (WCF) a través de la canalización HTTP de ASP.NET y se prohíbe la comunicación a través de los protocolos que no son HTTP. Para obtener más información, vea WCF Services and ASP.NET. |
minFreeMemoryPercentageToActivateService |
Un entero que especifica la cantidad mínima de memoria libre que debería tener disponible el sistema antes de que se pueda activar un servicio WCF.
Precaución:
Al especificar este atributo junto con la confianza parcial en el archivo web.config de un servicio WCF, se generará una clase SecurityException cuando se ejecute el servicio.
|
multipleSiteBindingsEnabled |
Valor booleano que especifica si están habilitados varios enlaces de IIS por sitio. IIS se compone de sitios web, que son contenedores de aplicaciones virtuales que contienen directorios virtuales. Se puede tener acceso a la aplicación de un sitio a través de uno o varios enlaces de IIS. Un enlace de IIS proporciona dos piezas de información: un protocolo de enlace e información de enlace. El protocolo de enlace define el esquema sobre el que se produce la comunicación, y la información de enlace es la información usada para tener acceso al sitio. Un ejemplo de un protocolo de enlace puede ser HTTP, mientras que la información de enlace puede contener una dirección IP, un puerto, un encabezado de host, etc. IIS permite especificar varios enlaces de IIS por sitio, lo que genera varias direcciones base por esquema. Sin embargo, un servicio de Windows Communication Foundation (WCF) hospedado en un sitio permite enlazar únicamente a una baseAddress por esquema. Para habilitar varios enlaces de IIS por sitio para un servicio Windows Communication Foundation (WCF), establezca este atributo en true. Observe que solo se admiten varios enlaces del sitio para el protocolo HTTP. La dirección de extremos en el archivo de configuración tiene que ser un URI completo. |
Elementos secundarios
Elemento | Descripción |
---|---|
Una colección de elementos de configuración que especifica los filtros de prefijo de las direcciones base usadas por el host del servicio. |
|
Sección de configuración que describe la configuración de activación. |
|
Una colección de elementos de configuración que identifica el tipo de un transporte determinado. |
Elementos primarios
Elemento | Descripción |
---|---|
serviceModel |
El elemento raíz de todos los elementos de configuración de la Windows Communication Foundation (WCF). |
Notas
De forma predeterminada, los servicios WCF se ejecutan en paralelo con ASP.NET en dominios de aplicación hospedados (Appdomain). Aunque WCF y ASP.NET pueden coexistir en el mismo Appdomain, la canalización de HTTP de ASP.NET no procesa de forma predeterminada las solicitudes de WCF. Como resultado, varios elementos de la plataforma de la aplicación ASP.NET no están disponibles para los servicios WCF. Éstos incluyen:
Autorización de dirección URL/archivo de ASP.NET
Suplantación de ASP.NET
Estado de sesión basado en cookies
HttpContext.Current
Extensibilidad de la canalización a través de HttpModule personalizado
Si sus servicios WCF necesitan funcionar en el contexto de ASP.NET, y solo comunicarse sobre HTTP, puede usar el modo de compatibilidad de ASP.NET de WCF. Este modo se activa cuando el atributo aspNetCompatibilityEnabled se establece en true en el nivel de aplicación. Las implementaciones del servicio deben declarar su capacidad de ejecutarse en modo de compatibilidad usando la clase AspNetCompatibilityRequirementsAttribute. Cuando el modo de compatibilidad está habilitado
Se exige la autorización de dirección URL/archivo de ASP.NET antes que la autorización de WCF. Una decisión de autorización se basa en la identidad a nivel de transporte de la solicitud. Se omiten las identidades a nivel de mensaje.
Las operaciones del servicio WCF empiezan a ejecutarse en el contexto de suplantación de ASP.NET. Si la suplantación de ASP.NET y la suplantación de WCF están habilitadas para un servicio concreto, se aplica el contexto de suplantación de WCF.
HttpContext.Current se puede usar del código del servicio WCF y se evita que los servicios expongan los extremos que no son HTTP.
La canalización de ASP.NET procesa las solicitudes de WCF. HttpModules que se ha configurado para actuar en solicitudes entrante también puede procesar las solicitudes de WCF. Éstas pueden incluir componentes de plataforma de ASP.NET (por ejemplo, SessionStateModule), y también módulos personalizados de terceros.
Ejemplo
El ejemplo de código siguiente muestra cómo habilitar el modo de compatibilidad de ASP.
Código
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
Vea también
Referencia
ServiceHostingEnvironmentSection
ServiceHostingEnvironment