Konfigurationseinstellungen des ASP.NET-Ausgabecacheanbieters in Azure-In-Role Cache

Wichtig

Microsoft empfiehlt, alle neuen Entwicklungen azure Redis Cache zu verwenden. Für aktuelle Dokumentation und Anleitungen zur Auswahl eines Azure Cache-Angebots finden Sie unter Welches Azure Cache-Angebot ist für mich richtig?

In diesem Thema werden die Konfigurationseinstellungen für den Azure-Ausgabecacheanbieter für ASP.NET behandelt. Diese Einstellungen werden im Abschnitt " Anbieter " des OutputCache-Elements in der datei web.config angegeben.

Ausgabecache-Konfigurationseinstellungen

attribute BESCHREIBUNG

Name (erforderlich)

Der Name des vom OutputCache-Element verwendeten Anbieters, um auf den Anbieter zu verweisen.

Typ (erforderlich)

Die .NET Framework-Typzeichenfolge für den Anbieter. Weitere Informationen zum erforderlichen Wert finden Sie im Hinweis unten.

cacheName (erforderlich)

Der Name des Azure-Caches. Dies muss auf “default” festgelegt werden.

dataCacheClientName (optional)

Der Name des DataCacheClient-Abschnitts, der aus dem DataCacheClients-Konfigurationsabschnitt verwendet werden soll. Dieses Attribut ist nur erforderlich, wenn mehrere DataCacheClient-Abschnitte in der web.config-Datei angegeben werden. Standardmäßig wird der Anbieter den DataCacheClient-Abschnitt namens " “default”dataCacheClient" verwenden.

applicationName (optional)

Ein vom Anbieter beim Erstellen von Cacheschlüsseln zum Speichern der Ausgabecachedaten verwendeter Zeichenfolgenwert. Der Standardwert ist eine leere Zeichenfolge. Wenn dieses Attribut nicht festgelegt ist, verwendet der Anbieter den Wert von HttpRuntime.AppDomainAppId als Teil der Cacheschlüssel, die sie intern verwendet. Im Gegensatz zur Sitzungsstatusfunktion möchten Sie Ausgabecachedaten nicht für verschiedene ASP.NET-Anwendungen gemeinsam verwenden (/contoso und /AdventureWorks können z. B. Ausgabecachedaten nicht gemeinsam verwenden). Stellen Sie stattdessen sicher, dass verschiedene physische Instanzen der gleichen Anwendung Zugriff auf die gleichen Ausgabecachedaten besitzen. Dies kann auf zwei unterschiedliche Arten erfolgen:

  • Wenn das ApplicationName-Anbieterattribute nicht explizit festgelegt ist, wird httpRuntime.AppDomainAppId intern vom Anbieter verwendet, wenn Cacheschlüssel erstellt werden. Dies bedeutet, dass jede physische Instanz der gleichen Anwendung (d. h., jeder Webserver, der die Anwendung /contoso hostet), in IIS mit dem genau gleichen Metabasispfad installiert sein muss. Eine https://support.microsoft.com/kb/325056Erläuterung darüber, wie Metabasepfade mit den SQL Server- und Out-of-Process-Sitzungsstatusanbietern verwendet werden. Obwohl der Sitzungszustand ein anderes Feature ist, ist das gleiche Problem vorhanden, indem Metabasepfade synchronisiert werden. Dies gilt für die Ausgabespeicherung, wenn das ApplicationName-Attribut nicht in der web.config-Datei festgelegt wurde.

  • Ein einfacherer Ansatz ist für jede Instanz derselben ASP.NET-Anwendung (z. B. auf jedem Webserver, auf dem die /contoso-Anwendung gehostet wird), um das gleiche ApplicationName-Attribut in der web.config-Datei zu verwenden. Auf diese Weise können verschiedene physische Instanzen der gleichen Anwendung aus dem gleichen Ausgabecachedaten lesen und in diesen schreiben. In diesem Fall verwendet der Anbieter keine AppDomainAppId beim Erstellen von Cacheschlüsseln und daher besteht kein Risiko für falsch übereinstimmende Metabasispfade.

retryInterval (optional)

Die Zeitspanne, die zwischen Wiederholungsversuchen gewartet wird, wenn ein Fehler bei der Kommunikation mit dem Cache auftritt. Das Zeichenfolgenformat, das für diesen Wert verwendet werden muss, ist "HH:MM:SS". Standardmäßig wartet der Anbieter eine Sekunde lang.

retryCount (optional)

Ein ganzzahliger Wert, der dem Anbieter die Anzahl der Wiederholungsversuche mitteilt, wenn ein Kommunikationsfehler mit dem Cache auftritt. Beachten Sie, dass nicht für alle Vorgänge Wiederholungsversuche ausgeführt werden können. Der Standardwert sind drei Wiederholungsversuche. Der Anbieter wird für die konfigurierte Wiederholungsintervalzeit zwischen jedem Wiederholungsversuch geschlafen.

Hinweis

Das Typattribute sollte auf “Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache”"festgelegt" festgelegt werden.

Beispiel

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

Weitere Informationen

Konzepte

Ausgabecacheanbieter für Azure-In-Role Cache