Condividi tramite


<serviceHostingEnvironment>

Questo elemento definisce il tipo di cui l'ambiente host del servizio crea un'istanza per un determinato trasporto. Se questo elemento è vuoto, viene utilizzato il tipo predefinito.

<system.serviceModel>
  <serviceHostingEnvironment>

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

Attributi ed elementi

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.

Attenzione:
Se nel file web.config di un servizio WCF si specifica questo attributo insieme al trust parziale, quando il servizio viene eseguito viene generata un'eccezione SecurityException.

Elementi figlio

Elemento Descrizione

<FiltriPrefissoIndirizzoBase>

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

<transportConfigurationTypes>

Insieme 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 attivare la modalità di compatibilità con ASP.

Codice

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

Vedere anche

Riferimenti

ServiceHostingEnvironmentSection
ServiceHostingEnvironment

Altre risorse

Hosting
WCF Services and ASP.NET