ASP.NET 中的缓存配置
更新:2007 年 11 月
ASP.NET 提供了许多可用于配置页面输出缓存和缓存 API 的选项。可以在处理了页面响应后使用页面输出缓存来缓存此页面响应。也可以通过编程的方式使用缓存 API 来缓存应用程序数据。有关更多信息,请参见 ASP.NET 缓存概述。
页面输出缓存配置
您可以在以下这些位置配置页面输出缓存:
配置文件 可以在应用程序配置层次结构的任何配置文件中配置页面输出缓存设置,包括 Machine.config 文件(用于设置计算机上所有的 Web 应用程序)和特定于应用程序的 Web.config 文件(用于设置单个应用程序)。
单个页面 可以在单个页面中以声明方式或编程方式设置缓存选项。还可将在配置文件中创建的缓存配置文件应用于单个页面。
用户控件 可以在单个用户控件中以声明方式或编程方式设置缓存。对于在其他情况下不缓存的页面内容来说,这是一种简便的缓存方法。
Web.config 缓存配置设置
在 Web.config 文件中,有两个顶级配置节可用于页输出缓存:OutputCacheSection 和 OutputCacheSettingsSection。
OutputCacheSection 节用于配置应用程序范围的设置,例如是启用还是禁用页输出缓存。例如,您可以通过向 Web.config 文件中的 OutputCacheSection 添加 enableOutputCache="false" 来对整个应用程序禁用页输出缓存。由于配置文件中的设置要优先于单个页面中的缓存设置,因此,示例设置将导致不使用输出缓存。
OutputCacheSettingsSection 用于配置可由单个页使用的配置文件和依赖项。例如,下面的代码创建了一个名为 CacheProfile1 的 OutputCacheProfile,它将缓存实现页 60 秒:
<outputCacheSettings>
<outputCacheProfiles>
<add name="CacheProfile1" duration="60" />
</outputCacheProfiles>
</outputCacheSettings>
Machine.config 缓存配置设置
Machine.config 文件的配置节与 Web.config 文件的配置节基本相同,而只有一点区别:即可以锁定 Machine.config 文件中的配置设置,使任何级别的单个应用程序都无法重写这些配置设置。在宿主不希望单个应用程序修改缓存配置时,可能有必要在共享宿主方案中使用此功能。有关更多信息,请参见如何:锁定 ASP.NET 配置设置。
页面缓存配置设置
通过应用在配置文件中定义的缓存配置文件,可以配置单个页中的缓存。也可以在 @ OutputCache 指令中配置各个缓存属性 (Property),或者通过设置页的类定义中的属性 (Attribute) 进行配置。有关更多信息,请参见 @ OutputCache 和设置页的可缓存性。
用户控件缓存配置设置
通过在用户控件文件中设置 @ OutputCache 指令,或通过在该控件的类定义中设置 PartialCachingAttribute 属性,可以配置用户控件缓存。有关更多信息,请参见缓存 ASP.NET 页的某些部分。
缓存 API 配置设置
可以在 Web.config 文件中配置应用程序的缓存 API。对于页面输出缓存,应用程序宿主可以在 Machine.config 文件中设置配置属性,并锁定所有应用程序的缓存配置设置。应用程序缓存 API 在 CacheSection 中进行配置。例如,您可以使用下面的配置元素来禁用项过期:
<cache disableExpiration="true" />
还可以通过为属性(如配置文件的 CacheSection 中的 DisableExpiration 和 DisableMemoryCollection 属性)赋值的方式来指定其他应用程序缓存 API 配置设置。