Paramètres de configuration du fournisseur de cache de sortie de page ASP.NET pour service de cache géré Azure

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 de cache de sortie Azure Service de cache géré pour ASP.NET. Ces paramètres sont spécifiés dans la section fournisseurs de l’élément outputCache dans le fichier web.config.

Paramètres de configuration du cache de sortie

Attribut Description

nom (obligatoire)

Nom « convivial » du fournisseur utilisé par l’élément outputCache 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.

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.

Notes

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

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 output caching provider -->
    <!--Uncomment this section to use Azure Caching for output caching-->
    <caching>
      <outputCache defaultProvider="AFCacheOutputCacheProvider">
        <providers>
          <add name="AFCacheOutputCacheProvider" 
            type="Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache"
            cacheName="default"
            dataCacheClientName="default"
            applicationName="AFCacheOutputCache" />
        </providers>
      </outputCache>
    </caching>
  </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 de cache de sortie de page pour service de cache géré Azure