<serviceHostingEnvironment><serviceHostingEnvironment>

Este elemento define el tipo en el que el entorno de hospedaje de servicio crea instancias de un transporte determinado.This element defines the type the service hosting environment instantiates for a particular transport. Si este elemento está vacío, se usa el tipo predeterminado.If this element is empty, the default type is used. Este elemento solo se puede usar en los archivos de configuración del nivel de aplicación o equipo.This element can only be used at the application or machine level configuration files.

<configuration> <configuration>
   <> System. serviceModel  <system.serviceModel>
     <> serviceHostingEnvironment    <serviceHostingEnvironment>

SintaxisSyntax

<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 elementosAttributes and Elements

En las siguientes secciones se describen los atributos, los elementos secundarios y los elementos primarios.The following sections describe attributes, child elements, and parent elements.

AtributosAttributes

AtributoAttribute DESCRIPCIÓNDescription
aspNetCompatibilityEnabledaspNetCompatibilityEnabled Un valor booleano que indica si se ha activado el modo de compatibilidad de ASP.NET para la aplicación actual.A Boolean value indicating whether the ASP.NET compatibility mode has been turned on for the current application. El valor predeterminado es false.The default is false.

Cuando este atributo se establece en true, las solicitudes a los servicios Windows Communication Foundation (WCF) fluyen a través de la canalización http ASP.net y se prohíbe la comunicación a través de protocolos que no son http.When this attribute is set to true, requests to Windows Communication Foundation (WCF) services flow through the ASP.NET HTTP pipeline, and communication over non-HTTP protocols is prohibited. Para obtener más información, vea servicios WCF y ASP.net.For more information, see WCF Services and ASP.NET.
minFreeMemoryPercentageToActivateServiceminFreeMemoryPercentageToActivateService Un entero que especifica la cantidad mínima de memoria libre que debe estar disponible para el sistema, antes de que se pueda activar un servicio WCF.An integer that specifies the minimum amount of free memory that should be available to the system, before a WCF service can be activated. Advertencia: Si se especifica este atributo junto con la confianza parcial en el archivo Web. config de un servicio WCF, se SecurityException producirá una cuando se ejecute el servicio.Caution: Specifying this attribute along with partial trust in the web.config file of a WCF service will result in a SecurityException when the service is run.
multipleSiteBindingsEnabledmultipleSiteBindingsEnabled Valor booleano que especifica si están habilitados varios enlaces de IIS por sitio.A Boolean value that specifies whether multiple IIS bindings per site is enabled.

IIS se compone de sitios web, que son contenedores de aplicaciones virtuales que contienen directorios virtuales.IIS consists of web sites, which are containers for virtual applications containing virtual directories. Se puede tener acceso a la aplicación de un sitio a través de uno o varios enlaces de IIS.The application in a site can be accessed through one or more IIS binding. Un enlace de IIS proporciona dos piezas de información: un protocolo de enlace e información de enlace.An IIS binding provides two pieces of information: a binding protocol and binding information. 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.Binding protocol defines the scheme over which communication occurs, and binding information is the information used to access the site. 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.An example of a binding protocol can be HTTP, whereas binding information can contain an IP address, Port, host header, etc.

IIS permite especificar varios enlaces de IIS por sitio, lo que genera varias direcciones base por esquema.IIS supports specifying multiple IIS bindings per site, which results in multiple base addresses per scheme. Sin embargo, un servicio de Windows Communication Foundation (WCF) hospedado en un sitio permite el enlace solo a una baseAddress por esquema.However, a Windows Communication Foundation (WCF) service hosted under a site allows binding to only one baseAddress per scheme.

Para habilitar varios enlaces de IIS por sitio para un servicio de Windows Communication Foundation (WCF), establezca este atributo trueen.To enable multiple IIS bindings per site for a Windows Communication Foundation (WCF) service, set this attribute to true. Observe que solo se admiten varios enlaces del sitio para el protocolo HTTP.Notice that multiple site binding is supported only for the HTTP protocol. La dirección de puntos de conexión en el archivo de configuración tiene que ser un URI completo.The address of endpoints in the configuration file needs to be a complete URI.

Elementos secundariosChild Elements

ElementoElement DESCRIPCIÓNDescription
<baseAddressPrefixFilters><baseAddressPrefixFilters> Una colección de elementos de configuración que especifican los filtros de prefijo de las direcciones base usadas por el host de servicio.A collection of configuration elements that specify prefix filters for the base addresses used by the service host.
<serviceActivations><serviceActivations> Sección de configuración que describe la configuración de activación.A configuration section that describes activation settings.
<transportConfigurationTypes><transportConfigurationTypes> Una colección de elementos de configuración que identifican el tipo de un transporte determinado.A collection of configuration elements that identify the type of a particular transport.

Elementos primariosParent Elements

ElementoElement DESCRIPCIÓNDescription
serviceModelserviceModel El elemento raíz de todos los elementos de configuración de la Windows Communication Foundation (WCF).The root element of all Windows Communication Foundation (WCF) configuration elements.

ComentariosRemarks

De forma predeterminada, los servicios WCF se ejecutan en paralelo con ASP.NET en dominios de aplicación hospedados (AppDomain).By default, WCF services run side-by-side with ASP.NET in hosted Application Domains (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.Even though WCF and ASP.NET can coexist in the same AppDomain, WCF requests are not processed by the ASP.NET HTTP Pipeline by default. Como resultado, varios elementos de la plataforma de la aplicación ASP.NET no están disponibles para los servicios WCF.As a result, several elements of the ASP.NET application platform are not available to WCF services. Éstos incluyen:These include

  • Autorización de dirección URL/archivo de ASP.NETASP.NET File/URL Authorization

  • Suplantación de ASP.NETASP.NET Impersonation

  • Estado de sesión basado en cookiesCookie-based Session State

  • HttpContext.CurrentHttpContext.Current

  • Extensibilidad de la canalización a través de HttpModule personalizadoPipeline Extensibility via custom HttpModule

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.If your WCF services need to function in the ASP.NET context, and communicate only over HTTP, you can use WCF’s ASP.NET compatibility mode. Este modo se activa cuando el atributo aspNetCompatibilityEnabled se establece en true en el nivel de aplicación.This mode is turned on when the aspNetCompatibilityEnabled attribute is set to true at the application level. Las implementaciones del servicio deben declarar su capacidad de ejecutarse en modo de compatibilidad usando la clase AspNetCompatibilityRequirementsAttribute.Service implementations must declare their ability to run in compatibility mode using the AspNetCompatibilityRequirementsAttribute class. Cuando el modo de compatibilidad está habilitadoWhen the compatibility mode is enabled,

  • Se exige la autorización de dirección URL/archivo de ASP.NET antes que la autorización de WCF.ASP.NET File/URL Authorization is enforced prior to WCF authorization. Una decisión de autorización se basa en la identidad a nivel de transporte de la solicitud.An authorization decision is based on the transport-level identity of the request. Se omiten las identidades a nivel de mensaje.Identities at the message level are ignored.

  • Las operaciones del servicio WCF empiezan a ejecutarse en el contexto de suplantación de ASP.NET.WCF service operations start to execute in the ASP.NET impersonation context. 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.If both ASP.NET impersonation and WCF impersonation are enabled for a specific service, the WCF impersonation context applies.

  • HttpContext.Current se puede usar del código del servicio WCF y se evita que los servicios expongan los puntos de conexión que no son HTTP.HttpContext.Current can be used from WCF service code, and services are prevented from exposing non-HTTP endpoints.

  • La canalización de ASP.NET procesa las solicitudes de WCF.WCF requests are processed by the ASP.NET pipeline. HttpModules que se ha configurado para actuar en solicitudes entrante también puede procesar las solicitudes de WCF.HttpModules that have been configured to act on incoming requests can also process WCF requests. Éstas pueden incluir componentes de plataforma de ASP.NET (por ejemplo, SessionStateModule), y también módulos personalizados de terceros.These can include ASP.NET platform components (e.g., SessionStateModule), as well as custom third party modules.

EjemploExample

El ejemplo de código siguiente muestra cómo habilitar el modo de compatibilidad de ASP.The following code sample shows how to enable ASP Compatibility Mode.

CódigoCode

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

Vea tambiénSee also