Partager via


Fournisseur d'état de session pour Azure In-Role Cache

Important

Microsoft recommande tous les nouveaux développements à l’aide du Cache Redis Azure. Pour obtenir de la documentation et des conseils actuels sur le choix d’une offre Azure Cache, consultez Quelle offre Azure Cache est adaptée à moi ?

Le fournisseur d’état de session est un mécanisme de stockage hors processus pour les applications ASP.NET. Ce fournisseur vous permet de stocker votre état de session dans un cache plutôt qu’en mémoire ou dans une base de données SQL Server.

Pour obtenir un exemple de mise en cache d’état de session, consultez l’exemple de mise en cache de l’état de session et de la sortie.

Fonctionnalités

Le fournisseur d’état de session présente les améliorations suivantes au cours des dernières ASP.NET fournisseurs d’état de session :

  • Il utilise la classe NetDataContractSerializer en interne pour la sérialisation de l'état de session.

  • Il peut partager l'état de session entre plusieurs applications ASP.NET.

  • Il prend en charge les accès simultanés au même ensemble d'état de session pour plusieurs lecteurs et un seul éditeur.

  • Il peut utiliser la compression via les propriétés du client de cache.

L'utilisation de la classe NetDataContractSerializer pour la sérialisation permet de prendre en charge davantage de types sérialisables. Ceci inclut les types sérialisables binaires.

Le fournisseur permet à plusieurs applications ASP.NET de lire et d'écrire les mêmes données d'état de session. Par exemple, un développeur a deux sites ASP.NET différents : /contoso et /adventureworks. Le fournisseur d'état de session peut être configuré dans chaque application web de façon à pointer vers le même magasin d'état de session dans le cluster de cache. Ainsi, les deux applications lisent et écrivent les mêmes données d'état de session pour un identificateur de session donné.

Le fournisseur d'état de session prend en charge les accès simultanés au même ensemble d'état de session pour plusieurs lecteurs et un seul éditeur. Dans ce cas, les lecteurs sont définis en tant que pages signalées comme utilisant l'état de session ReadOnly. Si des applications font un usage abondant des rappels AJAX, ceux-ci ne sont pas placés en file d'attente côté serveur si la plupart des schémas d'accès à l'état de session des applications requièrent uniquement un accès en lecture seule à l'état de la session.

Ajout du fournisseur d'état de session à un projet ASP.NET

  1. Commencez par configurer un cache à utiliser avec le fournisseur ASP.NET. Vous pouvez héberger la mise en cache avec une topologie colocalisé ou avec un rôle dédié.

  2. Utilisez NuGet pour ajouter la prise en charge de la mise en cache à votre projet ASP.NET dans Visual Studio. Pour obtenir des instructions, consultez Guide pratique pour préparer Visual Studio à l’utilisation d’Azure In-Role Cache.

    Important

    Cette procédure requiert le dernier gestionnaire de package NuGet (version 2.1.31002.9028 ou supérieure). Pour installer la dernière NuGet Gestionnaire de package, accédez à https://go.microsoft.com/fwlink/?LinkId=240311.

  3. Supprimez tout élément sessionState existant qui configure la mise en cache de l’état de session. Ne supprimez pas la section sessionState commentée qui a été ajoutée par le package NuGet.

  4. Dans le fichier web.config, annulez les commentaires de la section sessionState .

        <!-- Azure Caching session state provider -->
        <sessionState mode="Custom" customProvider="AFCacheSessionStateProvider">
          <providers>
            <add name="AFCacheSessionStateProvider" 
              type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache"
              cacheName="default" 
              dataCacheClientName="default" 
              applicationName="AFCacheSessionState"/>
          </providers>
        </sessionState>
    

La liste suivante inclut les modifications de configuration facultatives susceptibles d'affecter le fournisseur de caches de sortie.

  • Modifiez le cache nommé ciblé avec l’attribut cacheName de l’élément add .

  • Modifiez la source des paramètres du client de cache avec l’attribut dataCacheClientName de l’élément add . Définissez cet attribut sur le nom d’une section dataCacheClient existante dans le fichier web.config.

  • Modifiez le comportement du client de cache en modifiant les paramètres de la section dataCacheClient associée. Par exemple, activez la compression avec l’attribut isCompressionEnabled .

    <dataCacheClient name="default" isCompressionEnabled="true">
    

    Pour obtenir la liste des options de configuration disponibles, consultez La Paramètres de configuration du client du cache en rôle (Web.config).. Notez que les fournisseurs ASP.NET pour la mise en cache ne prennent pas en charge les types binaires ou personnalisés de sérialisation. Si ces sérialiseurs sont utilisés pour l’état de session, l’exception suivante se produit : « Type « Microsoft.Web.DistributedCache.SerializableSessionStateStoreData » dans assembly « Microsoft.Web.DistributedCache, Version=101.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 » n’est pas marqué comme sérialisable »

  • Modifiez les paramètres du fournisseur d'état de session. Pour obtenir la liste des options de configuration disponibles, consultez ASP.NET configuration du fournisseur d’état de session Paramètres dans le cache azure In-Role.

Dans cette section

Voir aussi

Concepts

Fournisseurs de cache ASP.NET 4 pour Azure In-Role Cache