Condividi tramite


<serviceHostingEnvironment>

Questo elemento definisce il tipo del quale l'ambiente host del servizio crea un'istanza per un determinato trasporto. Se questo elemento è vuoto, viene utilizzato il tipo predefinito. Questo elemento può essere utilizzato solo nei file di configurazione a livello di applicazione o computer.

Gerarchia dello schema

<system.serviceModel>
  <serviceHostingEnvironment>

Sintassi

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

Nelle sezioni seguenti vengono descritti attributi, elementi figlio ed elementi padre.

Attributi

Attributo Descrizione

aspNetCompatibilityEnabled

Valore booleano che indica se la modalità di compatibilità con ASP.NET è stata attivata per l'applicazione corrente. Il valore predefinito è false.

Quando questo attributo è impostato su true, le richieste ai servizi Windows Communication Foundation (WCF) passano attraverso la pipeline HTTP ASP.NET. Viene inoltre impedita la comunicazione tra protocolli non HTTP. Per ulteriori informazioni, vedere WCF Services and ASP.NET.

minFreeMemoryPercentageToActivateService

Numero intero che specifica la quantità minima di memoria libera che deve essere disponibile per il sistema, prima che un servizio WCF possa essere attivato.

ms731336.Caution(it-it,VS.100).gifAttenzione:
La specifica di questo attributo con attendibilità parziale nel file web.config di un servizio WCF determinerà la generazione di un'eccezione SecurityException al momento dell'esecuzione del servizio.

multipleSiteBindingsEnabled

Valore booleano che specifica se sono abilitate più associazioni IIS per sito.

IIS è costituito da siti Web contenitori di applicazioni virtuali che includono directory virtuali. È possibile accedere all'applicazione in un sito tramite una o più associazioni IIS. Un'associazione IIS fornisce due tipi di informazioni: un protocollo di associazione e delle informazioni di associazione. Il protocollo di associazione definisce lo schema in base al quale ha luogo la comunicazione, mentre le informazioni di associazione sono utilizzate per accedere al sito. Un esempio di protocollo di associazione è HTTP. Le informazioni di associazione possono contenere un indirizzo IP, una porta, un'intestazione host, e così via.

In IIS è disponibile il supporto per specificare più associazioni per sito, questo comporta la presenza di più indirizzi di base per schema. Tuttavia, un servizio Windows Communication Foundation (WCF) ospitato su un sito consente l'associazione di un solo indirizzo di base per schema.

Per abilitare più associazioni IIS per sito in un servizio Windows Communication Foundation (WCF), impostare questo attributo su true. Si noti che l'associazione di più siti è supportata solo per il protocollo HTTP. L'indirizzo degli endpoint nel file di configurazione deve essere un URI completo.

Elementi figlio

Elemento Descrizione

<FiltriPrefissoIndirizzoBase>

Raccolta di elementi di configurazione che specificano i filtri di prefisso degli indirizzi di base utilizzati dall'host del servizio.

<serviceActivations>

Sezione di configurazione in cui vengono descritte le impostazioni di attivazione.

<transportConfigurationTypes>

Raccolta di elementi di configurazione che identificano il tipo di un determinato trasporto.

Elementi padre

Elemento Descrizione

serviceModel

Elemento radice di tutti gli elementi di configurazione di Windows Communication Foundation (WCF).

Osservazioni

Per impostazione predefinita, i servizi WCF vengono eseguiti side-by-side con ASP.NET nei domini applicazioni ospitati. 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. Di conseguenza, diversi elementi della piattaforma delle applicazioni ASP.NET non sono disponibili per i servizi WCF. Segue un elenco di tali elementi.

  • Autorizzazione file/URL di ASP.NET

  • Rappresentazione di ASP.NET

  • Stato sessione basato su cookie

  • HttpContext.Current

  • Estensibilità della pipeline tramite HttpModule personalizzato

Se i servizi WCF devono funzionare nel contesto ASP.NET e comunicano solo su HTTP, è possibile utilizzare la modalità di compatibilità con ASP.NET di WCF. Questa modalità viene attivata quando l'attributo aspNetCompatibilityEnabled è impostato su true a livello di applicazione. Le implementazioni dei servizi devono utilizzare la classe AspNetCompatibilityRequirementsAttribute per dichiarare la propria capacità di essere in esecuzione in tale modalità di compatibilità. Quando la modalità di compatibilità è attiva si verifica quanto segue:

  • L'autorizzazione file/URL di ASP.NET viene applicata prima dell'autorizzazione WCF. Le decisioni di autorizzazione si basano sull'identità a livello di trasporto della richiesta. Le identità a livello di messaggio vengono ignorate.

  • L'esecuzione delle operazioni dei servizi WCF inizia nel contesto di rappresentazione di ASP.NET. 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.

  • HttpContext.Current può essere utilizzato dal codice dei servizi WCF. Inoltre, ai servizi viene impedito di esporre endpoint non HTTP.

  • Le richieste WCF vengono elaborate dalla pipeline ASP.NET. Le richieste WCF possono inoltre essere elaborate dagli elementi HttpModules configurati per agire sulle richieste in ingresso. Questi elementi possono includere componenti della piattaforma di ASP.NET (ad esempio SessionStateModule) nonché moduli personalizzati di terze parti.

Esempio

Nell'esempio di codice seguente viene mostrato come abilitare la modalità di compatibilità con ASP.

Codice

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

Vedere anche

Riferimento

ServiceHostingEnvironmentSection
ServiceHostingEnvironment

Altre risorse

Hosting
WCF Services and ASP.NET