此页面有用吗?
您对此内容的反馈非常重要。 请告诉我们您的想法。
更多反馈?
1500 个剩余字符
导出 (0) 打印
全部展开

Azure 角色中缓存中的 ASP.NET 输出缓存提供程序配置设置

更新时间: 2015年5月

note备注
有关为你的应用程序选择合适的 Azure 缓存产品/服务的指导,请参阅 哪种 Azure Cache 产品/服务适合我?

本主题将介绍用于 ASP.NET 的 Azure 输出缓存提供程序的配置设置。web.config 文件中 providers 元素的 outputCache 部分中指定了这些设置。

 

属性 说明

name(必需)

outputCache 元素所引用的提供程序的“友好”名称。

type(必需)

该提供程序的 .NET Framework 类型的字符串。有关所需的值,请参阅下面的说明。

cacheName(必需)

Azure 缓存的名称。此属性必须设置为 “default”

dataCacheClientName(可选)

dataCacheClient 配置部分中要使用的 dataCacheClients 部分的名称。仅当 web.config 文件中指定了多个 dataCacheClient 部分时才需要此属性。默认情况下,提供程序将使用名为 “default”dataCacheClient 部分。

applicationName(可选)

提供程序在创建用于存储输出缓存数据的缓存密钥时使用的字符串值。默认为空字符串。当未设置此属性时,提供程序将使用 HttpRuntime.AppDomainAppId 的值作为其内部使用的缓存密钥的一部分。与会话状态功能不同的是,你不需要在不同的 ASP.NET 应用程序之间共享输出缓存数据(例如,/contoso 和 /AdventureWorks 无法共享输出缓存数据),而是需要确保同一应用程序的不同物理实例均具有访问相同输出缓存数据的权限。可以通过下面两种方法完成此任务:

  • 如果未显式设置 applicationName 提供程序属性,则提供程序将在构造缓存密钥时在内部使用 HttpRuntime.AppDomainAppId。这意味着同一应用程序的每个物理实例(即每个托管 /contoso 应用程序的 Web 服务器)都需要安装在 IIS 中相同的元数据库路径下。有关如何对 SQL Server 和进程外会话状态提供程序使用元数据库路径的说明,请参阅 http://support.microsoft.com/kb/325056。虽然会话状态属于另一种功能,但在保持元数据库路径同步方面存在相同的问题。这适用于当 web.config 文件中尚未设置 applicationName 属性时的输出缓存。

  • 较简单的方法是,对于同一 ASP.NET 应用程序的每个实例(例如,在每个托管 /contoso 应用程序的 Web 服务器上),使用 web.config 文件中的同一 applicationName 属性。这样就允许同一应用程序的不同物理实例读取和写入相同的输出缓存数据。在此情况下,提供程序在构造缓存密钥时不使用 AppDomainAppId,因此,不存在元数据库路径不匹配的风险。

retryInterval(可选)

当与缓存之间的通信发生错误时,每两次重试之间须等待的时间跨度。此值所使用的字符串格式为 "HH:MM:SS"。默认情况下,提供程序将睡眠 1 秒。

retryCount(可选)

一个整数值,告知提供程序在与缓存的通信失败时的重试次数。请注意,并非所有操作都可以重试。默认值为 3 次重试。提供程序在每两次重试之间会睡眠所配置的 retryInterval 时间。

note备注
应将 type 属性设置为 “Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache”

<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>

另请参阅

显示:
© 2015 Microsoft