Partager via


Configuration d'un fournisseur d'état de session ASP.NET (mise en cache de Windows Server AppFabric)

Windows Server AppFabric inclut un fournisseur d'état de session personnalisé pour vos applications Web ASP.NET. Celui-ci permet aux applications Web de répartir les objets session au sein du cluster de cache, et par conséquent d'assurer l'évolutivité. En raison de la nature des fonctionnalités de mise en cache d'AppFabric, les objets placés dans Session doivent être sérialisables.

Les procédures de cette rubrique partent du principe que vous avez déjà préparé l'environnement de développement de votre application Web, défini les références aux assemblys de mise en cache d'AppFabric, etc. Pour plus d’informations, consultez la rubrique Préparation de l'environnement de développement du client de cache (mise en cache de Windows Server AppFabric).

Pour que vos applications Web ASP.NET utilisent le fournisseur d'état de session d'AppFabric, vous devez ajouter les éléments suivants au fichier web.config de votre application :

  • configSections : cet élément doit être le premier élément du fichier de configuration, sous la balise configuration d'ouverture. Il est nécessaire au fonctionnement des assemblys de mise en cache d'AppFabric.

  • dataCacheClient : cet élément est l'enfant de l'élément de configuration. Il permet de configurer le client de cache et de spécifier les hôtes de cache. Pour plus d'informations sur le client de cache, consultez la rubrique Développement d'un client de cache (mise en cache de Windows Server AppFabric).

  • sessionState : cet élément est l'enfant de l'élément system.web. Il spécifie à l'application Web qu'elle doit utiliser AppFabric pour gérer les états de session. L'attribut cacheName spécifie le cache nommé qui sera utilisé. Si vous stockez des données de session dans une zone de cache, utilisez l'attribut regionName pour spécifier la région.

Notes

Les objets stockés dans une région ne font pas l'objet d'un équilibrage de la charge entre les divers hôtes de cache, mais sont situés sur l'hôte de cache dans lequel la région a été créée. C'est pourquoi, cette configuration est déconseillée. Les régions ne doivent être utilisées que lorsque des exigences particulières requièrent que tous les objets session soient situés sur un seul hôte.

Avertissement

Il est vivement conseillé de sécuriser le fichier web.config utilisé pour spécifier les noms des hôtes de cache.

Pour configurer un fournisseur d'état de session d'AppFabric pour votre application Web

  1. Copiez l'élément configSections de l'exemple figurant après ces étapes dans le fichier web.config. Il doit s'agir du premier élément spécifié entre les balises configuration.

  2. Copiez l'élément dataCacheClient de l'exemple figurant après ces étapes dans le fichier web.config. Il doit être ajouté après l'élément configSections, au sein de l'élément configuration.

    1. Configurez les attributs name et cachePort des éléments d'hôte afin qu'ils correspondent aux serveurs de cache de votre environnement. Ajoutez ou supprimez les éléments d'hôte de manière appropriée.
  3. Copiez l'élément sessionState de l'exemple figurant après ces étapes dans le fichier web.config. Il doit être placé au sein de l'élément system.web.

  4. Déterminez l'identité de l'application Web. Pour ce faire, vous pouvez utiliser le Gestionnaire des services Internet sur les serveurs Web. Examinez l'identité du pool d'applications associé à l'application Web. Octroyez à cet utilisateur l'accès au cluster de cache à l'aide de la commande Windows PowerShell Grant-CacheAllowedClientAccount.

    Conseil

    Si le pool d'applications est exécuté comme compte d'ordinateur intégré, tel que « Autorité NT\Service réseau », octroyez l'accès au cluster de cache à cet ordinateur. Pour ce faire, spécifiez le compte NOM_DOMAINE\NOM_ORDINATEUR$. Notez que le caractère « $ » est ajouté au nom de l'ordinateur pour indiquer qu'il s'agit d'un compte d'ordinateur.

Exemple

Cet exemple présente la configuration d'une application Web ASP.NET afin qu'elle utilise un client de cache pour stocker les données de session dans un cache distribué appelé NamedCache1. Le client de cache de cet exemple ne permet de communiquer qu'avec un seul hôte de cache nommé CacheServer1.

Commencez par ajouter l'élément configSections au fichier web.config en tant que premier élément de l'élément configuration :

<!--configSections must be the FIRST element -->
<configSections>
   <!-- required to read the <dataCacheClient> element -->
   <section name="dataCacheClient"
         type="Microsoft.ApplicationServer.Caching.DataCacheClientSection,
            Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0, 
            Culture=neutral, PublicKeyToken=31bf3856ad364e35"
         allowLocation="true"
         allowDefinition="Everywhere"/>
</configSections>

Ajoutez ensuite l'élément dataCacheClient au fichier web.config, après l'élément configSections. Vous devez à présent configurer votre client de cache en fonction des besoins de votre application. Pour plus d'informations, consultez la rubrique Paramètres de configuration de l'application (mise en cache de Windows Server AppFabric).

<!-- cache client -->
<dataCacheClient> 
  <!-- cache host(s) -->
  <hosts>
    <host
       name="CacheServer1"
       cachePort="22233"/>
  </hosts>
</dataCacheClient>

Une fois les éléments configSections et dataCacheClient ajoutés, ajoutez l'élément sessionState au fichier web.config, au sein de l'élément system.web. Vous devez maintenant spécifier le cache que l'application Web utilisera pour stocker les données d'état de session.

Si plusieurs applications Web doivent partager le même état de session, elles doivent utiliser la même valeur d'attribut sharedId. Sinon, il n'est pas utile de spécifier l'attribut sharedId.

<sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
  <providers>
    <!-- specify the named cache for session data -->
    <add 
      name="AppFabricCacheSessionStoreProvider" 
      type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider" 
      cacheName="NamedCache1"
      sharedId="SharedApp"/>
  </providers>
</sessionState>

Lorsque vous avez terminé, le fichier web.config final de l'application Web est similaire à ce qui suit.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  
  <!--configSections must be the FIRST element -->
  <configSections>
     <!-- required to read the <dataCacheClient> element -->
     <section name="dataCacheClient"
         type="Microsoft.ApplicationServer.Caching.DataCacheClientSection,
            Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0, 
            Culture=neutral, PublicKeyToken=31bf3856ad364e35"
         allowLocation="true"
         allowDefinition="Everywhere"/>
  </configSections>
  
  <!-- cache client -->
  <dataCacheClient>    
    <!-- cache host(s) -->
    <hosts>
      <host
         name="CacheServer1"
         cachePort="22233"/>
    </hosts>
  </dataCacheClient>

  <system.web>
    <sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
      <providers>
        <!-- specify the named cache for session data -->
        <add 
          name="AppFabricCacheSessionStoreProvider" 
          type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider" 
          cacheName="NamedCache1"
          sharedId="SharedApp"/>
      </providers>
    </sessionState>
  </system.web>
</configuration>

Voir aussi

Concepts

Prise en main d'un client de cache de Windows Server AppFabric (XML)
Utilisation des méthodes de configuration (mise en cache de Windows Server AppFabric)
Concepts relatifs à la mise en cache de Windows Server AppFabric
Développement d'un client de cache (mise en cache de Windows Server AppFabric)

  2011-12-05