Compartir a través de


<serviceHostingEnvironment>

Este elemento define el tipo en el que el entorno de host de servicio crea instancias de un transporte determinado. Si este elemento está vacío, se usa el tipo predeterminado.

<<system.serviceModel>>
  <serviceHostingEnvironment>

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

Atributos y elementos

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.

ms731336.Caution(es-es,VS.90).gifPrecaución:
Al especificar este atributo junto con la confianza parcial en el archivo web.config de un servicio WCF, se producirá SecurityException cuando se ejecute el servicio.

Elementos secundarios

Elemento Descripción

<baseAddressPrefixFilters>

Una colección de elementos de configuración que especifican los filtros de prefijo de las direcciones base usadas por el host del servicio.

<transportConfigurationTypes>

Una colección de elementos de configuración que identifican 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).

Comentarios

De forma predeterminada, los servicios WCF se ejecutan simultáneamente 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 sólo 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 a 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"/>

Consulte también

Referencia

ServiceHostingEnvironmentSection
ServiceHostingEnvironment

Otros recursos

Hosting
WCF Services and ASP.NET