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

Cette rubrique décrit les paramètres de configuration du fournisseur d’état de session Azure 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 est obligatoire uniquement 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. Pour https://support.microsoft.com/kb/325056obtenir une explication sur l’utilisation des chemins de métabase avec les fournisseurs d’état de session hors processus et SQL Server. 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 est pour 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 veille pour le temps de nouvelle tentative 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 sur “Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache”.

Exemple

<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">
      <autoDiscover isEnabled="true" identifier="CacheWorkerRole1" />
    </dataCacheClient>
  </dataCacheClients>
  <cacheDiagnostics>
    <crashDump dumpLevel="Off" dumpStorageQuotaInMB="100" />
  </cacheDiagnostics>
</configuration>

Voir aussi

Concepts

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