Partager via


Paramètres de configuration du fournisseur d'état de session ASP.NET pour le 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 ?

Cette rubrique traite des paramètres de configuration du fournisseur d’état de session Azure Service de cache géré pour ASP.NET. Ces paramètres sont spécifiés dans la section fournisseurs de l’élément sessionState dans le fichier web.config.

Paramètres de configuration de l'état de session

Attribut Description

nom (obligatoire)

Nom « convivial » du fournisseur utilisé par l’élément sessionState pour référencer le fournisseur.

type (obligatoire)

Chaîne de type .NET Framework du fournisseur. Consultez la note ci-dessous sur la valeur requise.

cacheName (obligatoire)

Nom du cache Azure. Sa valeur doit être “default”.

dataCacheClientName (facultatif)

Nom de la section dataCacheClient à utiliser à partir de la section de configuration dataCacheClients . Cet attribut n’est requis que si plusieurs sections dataCacheClient sont spécifiées dans le fichier web.config. Par défaut, le fournisseur utilise la section dataCacheClient nommée “default”.

applicationName (facultatif)

Valeur de chaîne utilisée par le fournisseur lors de la création des clés de cache pour le stockage des données du cache de sortie. La valeur par défaut est une chaîne vide. Lorsque cet attribut n’est pas défini, le fournisseur utilise la valeur de HttpRuntime.AppDomainAppId dans le cadre des clés de cache qu’il utilise en interne. Contrairement à la fonction d'état de session, le partage des données du cache de sortie entre plusieurs applications ASP.NET n'est pas souhaitable (par exemple, /contoso et /AdventureWorks ne peuvent pas partager les données du cache de sortie). Vous devez toutefois veiller à ce que les instances physiques d'une application aient toutes accès aux données du même cache de sortie. Il existe plusieurs façons de procéder :

  • Si l’attribut du fournisseur applicationName n’est pas défini explicitement, HttpRuntime.AppDomainAppId est utilisé en interne par le fournisseur lors de la construction de clés de cache. Chaque instance physique d'une application (c'est-à-dire, chaque serveur web hébergeant l'application /contoso) doit être installée dans IIS avec le même chemin d'accès à la métabase. Consultez https://support.microsoft.com/kb/325056une explication de l’utilisation des chemins de métabase avec les fournisseurs d’état de session SQL Server et hors processus. Bien que l’état de session soit une fonctionnalité différente, le même problème existe avec la synchronisation des chemins de métabase. Cela s’applique à la mise en cache de sortie lorsque l’attribut applicationName n’a pas été défini dans le fichier web.config.

  • Une approche plus simple concerne chaque instance de la même application ASP.NET (par exemple, sur chaque serveur web hébergeant l’application /contoso) pour utiliser le même attribut applicationName dans le fichier web.config. Cela permet aux différentes instances physiques d'une application de lire et d'écrire les mêmes données du cache de sortie. Dans ce cas, le fournisseur n’utilise pas AppDomainAppId lors de la construction de clés de cache et, par conséquent, il n’existe aucun risque de chemins de métabase incompatibles.

useBlobMode (facultatif)

Valeur booléenne qui spécifie le chargement et le stockage des données d'état de session en tant qu'objet blob sérialisé unique. Cet attribut doit être défini sur true dans cette version (valeur par défaut). L'utilisation de la valeur false n'est pas prise en charge.

nonInlinedAdditionalLifetime (non pris en charge)

Cet attribut n'est pas pris en charge dans cette version.

retryInterval (facultatif)

Délai d'attente nécessaire entre les nouvelles tentatives en cas d'erreur lors de la communication avec le cache. Le format de chaîne "HH:MM:SS" doit être utilisé pour cette valeur. Par défaut, le fournisseur bascule en veille pendant une seconde.

retryCount (facultatif)

Valeur entière indiquant au fournisseur le nombre de nouvelles tentatives en cas d'échec de la communication avec le cache. Toutes les opérations ne peuvent pas faire l'objet d'une nouvelle tentative. La valeur par défaut est de trois nouvelles tentatives. Le fournisseur est en veille pour le temps retryInterval configuré entre chaque nouvelle tentative.

inlinedKeys (non pris en charge)

Cet attribut n'est pas pris en charge dans cette version.

maxInlinedStringLength (non pris en charge)

Cet attribut n'est pas pris en charge dans cette version.

Notes

L’attribut de type doit être défini “Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache”sur .

Exemple

<!-- Non-cache sections omitted for space -->
<configuration>
  <configSections>
    <section name="dataCacheClients" 
        type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" 
        allowLocation="true" 
        allowDefinition="Everywhere" />
    <section name="cacheDiagnostics" 
        type="Microsoft.ApplicationServer.Caching.AzureCommon.DiagnosticsConfigurationSection, Microsoft.ApplicationServer.Caching.AzureCommon" 
        allowLocation="true" 
        allowDefinition="Everywhere" />
  </configSections>
  <system.web>
    <!-- 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>
  </system.web>
  <dataCacheClients>
    <dataCacheClient name="default">
      <!--To use the in-role flavor of Azure Caching, set identifier to be the cache cluster role name -->
      <!--To use the Azure Caching Service, set identifier to be the endpoint of the cache cluster -->
      <autoDiscover
        isEnabled="true" 
        identifier="[Cache role name or Service Endpoint]" />
      <!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
      <!--Use this section to specify security settings for connecting to your cache. 
          This section is not required if your cache is hosted on a role that is a part 
          of your cloud service. -->
      <!--<securityProperties mode="Message" sslEnabled="false">
        <messageSecurity authorizationInfo="[Authentication Key]" />
      </securityProperties>-->
    </dataCacheClient>
    <cacheDiagnostics>
      <crashDump dumpLevel="Off" dumpStorageQuotaInMB="100" />
    </cacheDiagnostics>
  </dataCacheClients>
</configuration>

Notes

La section cacheDiagnostics est ajoutée uniquement par le package NuGet Cache aux clients de rôle web ASP.NET. Pour plus d’informations, consultez À propos de ClientDiagnosticLevel pour Azure Service de cache géré.

Voir aussi

Concepts

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