<serviceHostingEnvironment><serviceHostingEnvironment>

Questo elemento definisce il tipo di cui l'ambiente host del servizio crea un'istanza per un determinato trasporto.This element defines the type the service hosting environment instantiates for a particular transport. Se questo elemento è vuoto, viene usato il tipo predefinito.If this element is empty, the default type is used. Questo elemento può essere usato solo nei file di configurazione a livello di applicazione o computer.This element can only be used at the application or machine level configuration files.

<system.ServiceModel><system.ServiceModel>
<ServiceHostingEnvironment ><ServiceHostingEnvironment>

SintassiSyntax

<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>  

Attributi ed elementiAttributes and Elements

Nelle sezioni seguenti vengono descritti gli attributi, gli elementi figlio e gli elementi padre.The following sections describe attributes, child elements, and parent elements.

AttributiAttributes

AttributoAttribute DescrizioneDescription
aspNetCompatibilityEnabledaspNetCompatibilityEnabled Valore booleano che indica se la modalità di compatibilità con ASP.NET è stata attivata per l'applicazione corrente.A Boolean value indicating whether the ASP.NET compatibility mode has been turned on for the current application. Il valore predefinito è false.The default is false.

Quando questo attributo è impostato su true, le richieste ai servizi Windows Communication Foundation (WCF) passano attraverso la pipeline HTTP ASP.NET e non è consentita la comunicazione su protocolli non 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. Per ulteriori informazioni, vedere servizi WCF e ASP.NET.For more information, see WCF Services and ASP.NET.
minFreeMemoryPercentageToActivateServiceminFreeMemoryPercentageToActivateService Valore intero che specifica la quantità minima di memoria libera che deve essere disponibile per il sistema, prima di poter attivare un servizio 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. Attenzione: se si specifica questo attributo con attendibilità parziale nel file Web. config di un servizio WCF otterrà un SecurityException quando viene eseguito il servizio.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 Valore booleano che specifica se sono abilitate più associazioni IIS per sito.A Boolean value that specifies whether multiple IIS bindings per site is enabled.

IIS è costituito da siti Web contenitori di applicazioni virtuali che includono directory virtuali.IIS consists of web sites, which are containers for virtual applications containing virtual directories. È possibile accedere all'applicazione in un sito tramite una o più associazioni IIS.The application in a site can be accessed through one or more IIS binding. Un'associazione IIS fornisce due tipi di informazioni: un protocollo di associazione e delle informazioni di associazione.An IIS binding provides two pieces of information: a binding protocol and binding information. Il protocollo di associazione definisce lo schema in base al quale ha luogo la comunicazione, mentre le informazioni di associazione sono usate per accedere al sito.Binding protocol defines the scheme over which communication occurs, and binding information is the information used to access the site. Un esempio di protocollo di associazione è HTTP. Le informazioni di associazione possono contenere un indirizzo IP, una porta, un'intestazione host, e così via.An example of a binding protocol can be HTTP, whereas binding information can contain an IP address, Port, host header, etc.

In IIS è disponibile il supporto per specificare più associazioni per sito, questo comporta la presenza di più indirizzi di base per schema.IIS supports specifying multiple IIS bindings per site, which results in multiple base addresses per scheme. Tuttavia, un servizio Windows Communication Foundation (WCF) ospitato in un sito consente l'associazione a un solo indirizzo di base per schema.However, a Windows Communication Foundation (WCF) service hosted under a site allows binding to only one baseAddress per scheme.

Per abilitare più associazioni IIS per ogni sito per un servizio Windows Communication Foundation (WCF), impostare questo attributo su true.To enable multiple IIS bindings per site for a Windows Communication Foundation (WCF) service, set this attribute to true. Si noti che l'associazione di più siti è supportata solo per il protocollo HTTP.Notice that multiple site binding is supported only for the HTTP protocol. L'indirizzo degli endpoint nel file di configurazione deve essere un URI completo.The address of endpoints in the configuration file needs to be a complete URI.

Elementi figlioChild Elements

ElementoElement DescrizioneDescription
<baseAddressPrefixFilters ><baseAddressPrefixFilters> Raccolta di elementi di configurazione che specificano i filtri di prefisso degli indirizzi di base usati dall'host del servizio.A collection of configuration elements that specify prefix filters for the base addresses used by the service host.
<serviceActivations ><serviceActivations> Sezione di configurazione in cui vengono descritte le impostazioni di attivazione.A configuration section that describes activation settings.
<transportConfigurationTypes ><transportConfigurationTypes> Raccolta di elementi di configurazione che identificano il tipo di un determinato trasporto.A collection of configuration elements that identify the type of a particular transport.

Elementi padreParent Elements

ElementoElement DescrizioneDescription
serviceModelserviceModel L'elemento radice di tutti gli elementi di configurazione di Windows Communication Foundation (WCF).The root element of all Windows Communication Foundation (WCF) configuration elements.

NoteRemarks

Per impostazione predefinita, i servizi WCF vengono eseguiti side-by-side con ASP.NET nei domini applicazioni ospitati.By default, WCF services run side-by-side with ASP.NET in hosted Application Domains (AppDomain). Benché WCF e ASP.NET possano coesistere nello stesso dominio applicazione, per impostazione predefinita le richieste WCF non vengono elaborate dalla pipeline HTTP ASP.NET.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. Di conseguenza, diversi elementi della piattaforma delle applicazioni ASP.NET non sono disponibili per i servizi WCF.As a result, several elements of the ASP.NET application platform are not available to WCF services. Segue un elenco di tali elementi.These include

  • Autorizzazione file/URL di ASP.NETASP.NET File/URL Authorization

  • Rappresentazione di ASP.NETASP.NET Impersonation

  • Stato sessione basato su cookieCookie-based Session State

  • HttpContext.CurrentHttpContext.Current

  • Estensibilità della pipeline tramite HttpModule personalizzatoPipeline Extensibility via custom HttpModule

Se i servizi WCF devono funzionare nel contesto ASP.NET e comunicano solo su HTTP, è possibile usare la modalità di compatibilità con ASP.NET di 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. Questa modalità viene attivata quando l'attributo aspNetCompatibilityEnabled è impostato su true a livello di applicazione.This mode is turned on when the aspNetCompatibilityEnabled attribute is set to true at the application level. Le implementazioni dei servizi devono usare la classe AspNetCompatibilityRequirementsAttribute per dichiarare la propria capacità di essere in esecuzione in tale modalità di compatibilità.Service implementations must declare their ability to run in compatibility mode using the AspNetCompatibilityRequirementsAttribute class. Quando la modalità di compatibilità è attiva si verifica quanto segue:When the compatibility mode is enabled,

  • L'autorizzazione file/URL di ASP.NET viene applicata prima dell'autorizzazione WCF.ASP.NET File/URL Authorization is enforced prior to WCF authorization. Le decisioni di autorizzazione si basano sull'identità a livello di trasporto della richiesta.An authorization decision is based on the transport-level identity of the request. Le identità a livello di messaggio vengono ignorate.Identities at the message level are ignored.

  • L'esecuzione delle operazioni dei servizi WCF inizia nel contesto di rappresentazione di ASP.NET.WCF service operations start to execute in the ASP.NET impersonation context. Se per un servizio specifico sono attivate sia la rappresentazione di ASP.NET sia la rappresentazione di WCF, il sistema applica il contesto di rappresentazione di WCF.If both ASP.NET impersonation and WCF impersonation are enabled for a specific service, the WCF impersonation context applies.

  • HttpContext.Current può essere usato dal codice dei servizi WCF. Inoltre, ai servizi viene impedito di esporre endpoint non HTTP.HttpContext.Current can be used from WCF service code, and services are prevented from exposing non-HTTP endpoints.

  • Le richieste WCF vengono elaborate dalla pipeline ASP.NET.WCF requests are processed by the ASP.NET pipeline. Le richieste WCF possono inoltre essere elaborate dagli elementi HttpModules configurati per agire sulle richieste in ingresso.HttpModules that have been configured to act on incoming requests can also process WCF requests. Questi elementi possono includere componenti della piattaforma di ASP.NET (ad esempio SessionStateModule) nonché moduli personalizzati di terze parti.These can include ASP.NET platform components (e.g., SessionStateModule), as well as custom third party modules.

EsempioExample

Nell'esempio di codice seguente viene mostrato come abilitare la modalità di compatibilità con ASP.The following code sample shows how to enable ASP Compatibility Mode.

CodiceCode

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>  

Vedere ancheSee Also

ServiceHostingEnvironmentSection
ServiceHostingEnvironment
HostingHosting
Servizi WCF e ASP.NETWCF Services and ASP.NET