Partager via


<serviceHostingEnvironment>

Cet élément définit le type instancié par l'environnement d'hébergement de service correspondant à un transport particulier. Si cet élément est vide, c'est le type par défaut qui est utilisé. Cet élément ne peut être utilisé qu'au niveau des fichiers de configuration de l'application ou de l'ordinateur.

Hiérarchie de schéma

<system.serviceModel>
  <serviceHostingEnvironment>

Syntaxe

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

Attributs et éléments

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.

Attributs

Attribut Description

aspNetCompatibilityEnabled

Valeur booléenne indiquant si le mode de compatibilité ASP.NET a été activé pour l'application actuelle. La valeur par défaut est false.

Lorsque cet attribut a la valeur true, les demandes transmises aux services Windows Communication Foundation (WCF) passent par le pipeline HTTP ASP.NET ; en outre, les communications via des protocoles non-HTTP sont interdites. Pour plus d'informations, consultez WCF Services and ASP.NET.

minFreeMemoryPercentageToActivateService

Entier indiquant la quantité minimale de mémoire disponible nécessaire au système pour permettre l'activation d'un service WCF.

ms731336.Caution(fr-fr,VS.100).gifAttention :
L'indication de cet attribut avec une confiance partielle dans le fichier web.config d'un service WCF provoque un SecurityException lorsque le service est exécuté.

multipleSiteBindingsEnabled

Valeur booléenne qui spécifie si plusieurs liaisons IIS par site sont autorisées.

Les services IIS se composent de sites Web, qui sont des conteneurs d'applications virtuelles contenant des répertoires virtuels. L'application dans un site est accessible par le biais d'une ou de plusieurs liaisons IIS. Une liaison IIS fournit deux informations : un protocole de liaison et des informations de liaison. Le protocole de liaison définit le schéma selon lequel la communication est établie et les informations de liaison sont les informations utilisées pour accéder au site. HTTP peut être un exemple de protocole de liaison, tandis que les informations de liaison peuvent contenir une adresse IP, un port, un en-tête d'hôte, etc.

IIS prend en charge la spécification de plusieurs liaisons IIS par site, ce qui entraîne plusieurs adresses de base par schéma. Toutefois, un service Windows Communication Foundation (WCF) hébergé sur un site n'autorise la liaison qu'avec un seul baseAddress par schéma.

Pour autoriser plusieurs liaisons IIS par site pour un service Windows Communication Foundation (WCF), affectez à cet attribut la valeur true. Notez que la spécification de plusieurs liaisons de site est prise en charge uniquement pour le protocole HTTP. L'adresse des points de terminaison dans le fichier de configuration doit être un URI complet.

Éléments enfants

Élément Description

<baseAddressPrefixFilters>

Collection des éléments de configuration qui spécifient des filtres de préfixe pour les adresses de base utilisée par l'hôte de service.

<serviceActivations>

Section de configuration qui décrit les paramètres d'activation.

<transportConfigurationTypes>

Collection des éléments de configuration identifiant le type d'un transport particulier.

Éléments parents

Élément Description

serviceModel

Élément racine de tous les éléments de configuration Windows Communication Foundation (WCF).

Notes

Par défaut, les services WCF sont exécutés conjointement à ASP.NET dans les domaines d'application hébergés (AppDomain). Bien que WCF et ASP.NET puissent coexister sur le même domaine AppDomain, les demandes WCF ne sont pas traitées par défaut par le pipeline HTTP d'ASP.NET. En conséquence, plusieurs éléments de la plate-forme d'application ASP.NET ne sont pas disponibles pour les services WCF. Il s'agit des méthodes suivantes :

  • Autorisation de l'URL/du fichier ASP.NET

  • Emprunt d'identité ASP.NET

  • État de session basé sur les cookies

  • HttpContext.Current

  • Extensibilité de pipeline via HttpModule personnalisé

Si vos services WCF doivent fonctionner dans le contexte ASP.NET et communiquer uniquement via HTTP, vous pouvez utiliser le mode de compatibilité ASP.NET de WCF. Ce mode est activé lorsque l'attribut aspNetCompatibilityEnabled a la valeur true au niveau de l'application. Les implémentations de service doivent déclarer leur capacité de fonctionner en mode de compatibilité à l'aide de la classe AspNetCompatibilityRequirementsAttribute. Lorsque le mode de compatibilité est activé :

  • L'autorisation de l'URL/du fichier ASP.NET est appliquée avant l'autorisation WCF. Une décision d'autorisation est basée sur l'identité de la demande au niveau du transport. Les identités au niveau du message sont ignorées.

  • Les opérations de service WCF commencent à s'exécuter dans le contexte d'emprunt d'identité ASP.NET. Si les emprunts d'identité ASP.NET et WCF sont tous deux activés pour un service spécifique, c'est le contexte d'emprunt d'identité WCF qui est appliqué.

  • HttpContext.Current peut être utilisé à partir du code de service WCF ; cette opération permet d'empêcher l'exposition des points de terminaison non-HTTP.

  • Les demandes WCF sont traitées par le pipeline ASP.NET. Les HttpModules ayant été configurés pour agir sur les requêtes entrantes peuvent également traiter des demandes WCF. Ils peuvent inclure des composants de plate-forme ASP.NET (par exemple, SessionStateModule), ainsi que des modules tiers personnalisés.

Exemple

L'exemple de code suivant indique comment activer le Mode de compatibilité ASP.

Code

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

Voir aussi

Référence

ServiceHostingEnvironmentSection
ServiceHostingEnvironment

Autres ressources

Hosting
WCF Services and ASP.NET