Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet élément définit le type que l’environnement d’hébergement de service instancie pour un transport particulier. Si cet élément est vide, le type par défaut est utilisé. Cet élément ne peut être utilisé qu’au niveau de l’application ou des fichiers de configuration au niveau de l’ordinateur.
<configuration>
<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.
Attributes
| Caractéristique | Descriptif |
|---|---|
| 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 est défini truesur , les demandes adressées aux services Windows Communication Foundation (WCF) transitent par le pipeline HTTP ASP.NET et la communication via des protocoles non HTTP est interdite. Pour plus d’informations, consultez services WCF et ASP.NET. |
| minFreeMemoryPercentageToActivateService | Entier qui spécifie la quantité minimale de mémoire libre qui doit être disponible pour le système, avant qu’un service WCF puisse être activé. Attention: La spécification de cet attribut ainsi que l’approbation partielle dans le fichier web.config d’un service WCF entraîne l’exécution SecurityException du service. |
| multipleSiteBindingsEnabled | Valeur booléenne qui spécifie si plusieurs liaisons IIS par site sont activées. IIS se compose de sites web, qui sont des conteneurs pour les applications virtuelles contenant des répertoires virtuels. L’application d’un site est accessible via une ou 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 sur lequel se produit la communication et les informations de liaison sont les informations utilisées pour accéder au site. Un exemple de protocole de liaison peut être HTTP, 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é sous un site autorise la liaison à une seule baseAddress par schéma. Pour activer plusieurs liaisons IIS par site pour un service Windows Communication Foundation (WCF), définissez cet attribut truesur . Notez que plusieurs liaisons de site sont prises 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 | Descriptif |
|---|---|
| <baseAddressPrefixFilters> | Collection d’éléments de configuration qui spécifient des filtres de préfixe pour les adresses de base utilisées par l’hôte de service. |
| <serviceActivations> | Section de configuration qui décrit les paramètres d’activation. |
| <transportConfigurationTypes> | Collection d’éléments de configuration qui identifient le type d’un transport particulier. |
Éléments parents
| Élément | Descriptif |
|---|---|
| serviceModel | Élément racine de tous les éléments de configuration Windows Communication Foundation (WCF). |
Remarques
Par défaut, les services WCF s’exécutent côte à côte avec ASP.NET dans les domaines d’application hébergés (AppDomain). Même si WCF et ASP.NET peuvent coexister dans le même AppDomain, les requêtes WCF ne sont pas traitées par le pipeline HTTP ASP.NET par défaut. Par conséquent, plusieurs éléments de la plateforme d’application ASP.NET ne sont pas disponibles pour les services WCF. Ceux-ci incluent
ASP.NET autorisation de fichier/URL
emprunt d’identité ASP.NET
État de session basé sur les cookies
HttpContext.Current
Extensibilité du 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 WCF. Ce mode est activé lorsque l’attribut aspNetCompatibilityEnabled est défini true sur au niveau de l’application. Les implémentations de service doivent déclarer leur capacité à s’exécuter en mode de compatibilité à l’aide de la AspNetCompatibilityRequirementsAttribute classe. Lorsque le mode de compatibilité est activé,
ASP.NET autorisation fichier/URL est appliquée avant l’autorisation WCF. Une décision d’autorisation est basée sur l’identité au niveau du transport de la demande. 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 ASP.NET emprunt d’identité et l’emprunt d’identité WCF sont activés pour un service spécifique, le contexte d’emprunt d’identité WCF s’applique.
HttpContext.Current peut être utilisé à partir du code de service WCF, et les services ne peuvent pas exposer des points de terminaison non HTTP.
Les requêtes WCF sont traitées par le pipeline ASP.NET. HttpModules qui ont été configurés pour agir sur les requêtes entrantes peuvent également traiter les requêtes WCF. Ceux-ci peuvent inclure des composants de plateforme ASP.NET (par exemple, SessionStateModule), ainsi que des modules tiers personnalisés.
Example
L’exemple de code suivant montre comment activer le mode de compatibilité ASP.
Code
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>