Partager via


Fournisseur d'état de session pour service de cache géré Azure

Important

Microsoft recommande tous les nouveaux développements d’utiliser le 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 du cache Microsoft Azure est un mécanisme de stockage hors processus pour les applications ASP.NET. Il permet de stocker l'état de votre session dans un cache plutôt que dans la mémoire ou une base de données SQL Server.

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

Fonctionnalités

Le fournisseur d’état de session cache Microsoft Azure présente les améliorations suivantes au cours des 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 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.

  2. Utilisez NuGet pour ajouter la prise en charge de la mise en cache à votre projet ASP.NET dans Visual Studio.

    Important

    Pour exécuter cette procédure, vous devez disposer du Gestionnaire de package NuGet (version 2.6.40627.9000 ou supérieure). Pour installer la dernière NuGet Gestionnaire de package, consultez NuGet Gestionnaire de package.

  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, supprimez les marques de commentaire 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 d'état 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">
      <!-- Other cache settings omitted -->
    </dataCacheClient>
    

    Pour obtenir la liste des options de configuration disponibles, consultez cache Client Configuration Paramètres pour Azure Service de cache géré. Notez que les fournisseurs ASP.NET pour la mise en cache ne prennent pas en charge les types de sérialisation binaires ou personnalisés. Si ces sérialiseurs sont utilisés pour l’état de session, l’exception suivante se produit : « Type « Microsoft.Web.DistributedCache.SerializableSessionStateStoreData » dans l’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 Paramètres de configuration du fournisseur d’état de session pour Azure Service de cache géré.

Dans cette section