Partager via


Configuration des services à l'aide de fichiers de configuration

La configuration d'un service Windows Communication Foundation (WCF) avec un fichier de configuration vous donne la souplesse de fournir des données de point de terminaison et de comportement du service au point de déploiement au lieu qu'au moment du design. Cette rubrique esquisse les principales techniques disponibles.

Un service WCF est configurable à l'aide de la technologie de configuration .NET Framework. Le plus souvent, les éléments XML sont ajoutés au fichier Web.config pour un site IIS (Internet Information Services) qui héberge un service WCF. Les éléments vous permettent de modifier des détails, tels que les adresses de point de terminaison (les adresses réelles qui communiquent avec le service) à partir de chaque ordinateur individuel. De plus, WCF inclut plusieurs éléments fournis par le système qui vous permettent de sélectionner rapidement les principales fonctionnalités de base pour un service. Dans la pratique, l'écriture de la configuration est une partie importante de la programmation des applications WCF.

Pour plus d'informations, consultez Configuration de liaisons pour les services Windows Communication Foundation. Pour obtenir la liste des éléments le plus communément utilisés, consultez Liaisons fournies par le système.

System.Configuration : Web.config et App.config

WCF utilise le système de configuration System.Configuration du .NET Framework.

Lorsque vous configurez un service dans Visual Studio, utilisez un fichier Web.config ou un fichier App.config pour spécifier les paramètres. Le choix du nom de fichier de configuration est déterminé par l'environnement d'hébergement que vous choisissez pour le service. Si vous utilisez IIS pour héberger votre service, utilisez un fichier Web.config. Si vous utilisez tout autre environnement d'hébergement, utilisez un fichier App.config.

Dans Visual Studio, le fichier nommé App.config est utilisé pour créer le fichier de configuration final. Le nom final réellement utilisé pour la configuration dépend du nom de l'assembly. Par exemple, un assembly nommé "Cohowinery.exe" porte le nom de fichier de configuration final "Cohowinery.exe.config". Toutefois, vous devez seulement modifier le fichier App.config. Les modifications apportées à ce fichier sont automatiquement répercutées dans le fichier final de configuration de l'application, à la compilation.

Pour utiliser un fichier App.config, le système de configuration fusionne le fichier App.config avec le contenu du fichier Machine.config lorsque l'application démarre et la configuration est appliquée. Ce mécanisme autorise la définition de paramètres à l'échelle de l'ordinateur dans le fichier Machine.config. Le fichier App.config peut être utilisé pour substituer les paramètres du fichier Machine.config ; vous pouvez également verrouiller les paramètres dans le fichier Machine.config afin qu'ils soient utilisés. Dans le cas de Web.config, le système de configuration fusionne les fichiers Web.config dans tous les répertoires qui mènent au répertoire de l'application dans la configuration qui est appliquée. Pour plus d'informations sur la configuration et des priorités de paramètre, consultez les rubriques dans l'espace de noms System.Configuration.

Sections majeures du fichier de configuration

Les sections principales dans le fichier de configuration incluent les éléments suivants.

<system.ServiceModel>

   <services>
      <service>
         <endpoint/>
      </service>
   </services>

   <bindings>
   <!-- Specify one or more of the system-provided binding elements,
    for example, <basicHttpBinding> --> 
   <!-- Alternatively, <customBinding> elements. -->
      <binding>
      <!-- For example, a <BasicHttpBinding> element. -->
      </binding>
   </bindings>

   <behaviors>
   <!-- One or more of the system-provided or custom behavior elements. -->
      <behavior>
      <!-- For example, a <throttling> element. -->
      </behavior>
   </behaviors>

</system.ServiceModel>
ms733932.note(fr-fr,VS.90).gifRemarque :
Les sections de liaison et de comportement sont facultatives et sont incluses uniquement si besoin est.

L'élément <services>

L'élément services contient les caractéristiques pour tous les services que l'application héberge.

<services> element reference

L'élément <service>

Chaque service a les attributs suivants :

  • name. Spécifie le type qui fournit une implémentation d'un contrat de service. C'est un nom qualifié complet (espace de noms et nom de type).
  • behaviorConfiguration. Spécifie le nom de l'un des éléments behavior recherché dans l'élément behaviors. Le comportement spécifié gouverne des actions comme l'autorisation de l'emprunt d'identité par le service.
  • <service> element reference

L'élément <endpoint>

Chaque point de terminaison requiert une adresse, une liaison et un contrat, représentés par les attributs suivants :

  • address. Spécifie l'URI (Uniform Resource Identifier) du service, qui peut être une adresse absolue ou une adresse donnée relativement à l'adresse de base du service. Si l'attribut a une valeur de chaîne vide, il indique que le point de terminaison est disponible à l'adresse de base spécifiée lors de la création de ServiceHost pour le service.
  • binding. En général, spécifie une liaison fournie par le système comme WsHttpBinding, mais peut également spécifier une liaison définie par l'utilisateur. La liaison spécifiée détermine le type de transport, de sécurité et de codage utilisé, et si des sessions fiables, des transactions ou la diffusion en continu sont pris en charge ou activés.
  • bindingConfiguration. Si les valeurs par défaut d'une liaison doivent être modifiées, cela peut être fait en configurant l'élément binding approprié dans l'élément bindings. Cet attribut doit avoir la même valeur que l'attribut name de l'élément binding utilisé pour modifier les valeurs par défaut.
  • contract. Spécifie l'interface qui définit le contrat. C'est l'interface implémentée dans le type Common Language Runtime (CLR) spécifié par l'attribut name de l'élément service.
  • <endpoint> element reference

L'élément <bindings>

L'élément bindings contient les caractéristiques pour toutes les liaisons qui peuvent être utilisées par tout point de terminaison défini dans un service.

<bindings> element reference

L'élément <binding>

Les éléments binding contenus dans l'élément bindings peuvent être une des liaisons fournies par le système (consultez Liaisons fournies par le système) ou une liaison personnalisée (consultez Liaisons personnalisées). L'élément binding a un attribut name qui correspond la liaison avec le point de terminaison spécifié dans l'attribut bindingConfiguration de l'élément endpoint.

Pour plus d'informations sur la configuration des services et des clients par consultez Configuration d'applications Windows Communication Foundation.

<binding> element reference

L'élément <behaviors>

C'est un élément conteneur des éléments behavior qui définissent les comportements pour un service.

<behaviors> element reference

L'élément <behavior>

Chaque élément behavior est identifié par un attribut name et fournit un comportement fourni par le système, tel que <throttling>, ou un comportement personnalisé.

<behavior> element reference

Comment : utiliser les configurations de liaison et de comportement

WCF facilite le partage des configurations entre des points de terminaison à l'aide d'un système de référence dans la configuration. Plutôt qu'assigner directement des valeurs de configuration à un point de terminaison, les valeurs de configuration connexes à la liaison sont groupées dans les éléments bindingConfiguration dans la section <binding>. Une configuration de liaison est un groupe nommé de paramètres sur une liaison. Les points de terminaison peuvent référencer ensuite l'élément bindingConfiguration par nom.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <system.serviceModel>
  <bindings>
    <basicHttpBinding>
     <binding name="myBindingConfiguration1" closeTimeout="00:01:00" />
     <binding name="myBindingConfiguration2" closeTimeout="00:02:00" />
    </basicHttpBinding>
     </bindings>
     <services>
      <service name="myServiceType">
       <endpoint 
          address="myAddress" binding="basicHttpBinding" 
          bindingConfiguration="myBindingConfiguration1" />
       </service>
      </services>
    </system.serviceModel>
</configuration>

L'attribut name de l'élément bindingConfiguration est défini dans l'élément <binding>. L'attribut name doit être une chaîne unique dans l'étendue du type de liaison, dans ce cas <basicHttpBinding>. Le point de terminaison est relié à la configuration en affectant l'attribut bindingConfiguration à cette chaîne.

Un attribut behaviorConfiguration est implémenté de la même façon, comme illustré dans l'exemple suivant.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.serviceModel>
    <behaviors>
      <endpointBehaviors>
        <behavior name="myBehavior">
           <callbackDebug includeExceptionDetailInFaults="true" />
         </behavior>
       </endpointBehaviors>
    </behaviors>
    <services>
     <service name="NewServiceType">
       <endpoint 
          address="myAddress" behaviorConfiguration="myBehavior"
          binding="basicHttpBinding" />
      </service>
    </services>
   </system.serviceModel>
</configuration>

Ce système permet aux points de terminaison de partager des configurations communes sans redéfinir les paramètres. Si une étendue à l'échelle de l'ordinateur est requise, créez la configuration de la liaison ou du comportement dans Machine.config. Les paramètres de configuration sont disponibles dans tous les fichiers App.config. Configuration Editor Tool (SvcConfigEditor.exe) facilite la création des configurations.

Voir aussi

Autres ressources

Configuration d'applications Windows Communication Foundation
<service>
<binding>