ASP.NET 4 缓存输出缓存提供程序的配置设置(AppFabric 1.1 缓存)

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

会话状态配置设置

属性 描述

name(必需)

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

type(必需)

该提供程序的 .NET Framework 类型的字符串。此属性应设置为 “Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache”

cacheName(必需)

AppFabric 缓存的名称。

dataCacheClientName(可选)

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

applicationName(可选)

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

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

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

retryInterval(可选)

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

retryCount(可选)

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

示例

下例显示了一个使用 AppFabric 缓存 的 outputCache 元素。

<caching>
  <outputCache defaultProvider="DistributedCache">
    <providers>
      <add name="DistributedCache"
           type="Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache"
           cacheName="default"
           dataCacheClientName="default" />
    </providers>
  </outputCache>
</caching>

另请参阅

概念

输出缓存提供程序(AppFabric 1.1 缓存)

  2012-03-05