caching 的 outputCache 元素(ASP.NET 设置架构)

指定应用程序范围的输出缓存设置。

<outputCache enableOutputCache="true|false" 
             enableFragmentCache="true|false" 
             sendCacheControlHeader="true|false" 
             omitVaryStar="true|false"
             defaultProvider="AspNetInternalProvider">
</outputCache>

特性和元素

以下几节描述了属性、子元素和父元素。

特性

特性

说明

enableOutputCache

可选的 Boolean 特性。

启用/禁用页输出缓存。

如果禁用,则无论是否具有编程性或声明性设置,都不会缓存页。

默认值为 true。

enableFragmentCache

可选的 Boolean 特性。

启用/禁用应用程序片段缓存。

如果禁用,则无论是否使用 @ OutputCache 指令或缓存配置文件,都不会缓存页。 包括一个缓存控件标头,指示上游代理服务器以及浏览器客户端不应尝试缓存页输出。

默认值为 false。

sendCacheControlHeader

可选的 Boolean 特性。

获取或设置一个值,该值指示默认情况下 cache-control:private 标头是否由输出缓存模块发送。

默认值为 false。

omitVaryStar

可选的 Boolean 特性。

允许/禁止在响应中发送 HTTP“Vary: *”标头。 默认设置为 False,表示为输出缓存页发送“Vary: *”标头。

默认值为 false。

defaultProvider

可选的字符串特性。

获取或设置默认输出缓存提供程序。

默认值为“AspNetInternalProvider”。 这是 ASP.NET 提供的内存缓存。

子元素

元素

说明

providers

可用于配置自定义输出缓存提供程序的可选子元素。

父元素

元素

说明

configuration

公共语言运行时和 .NET Framework 应用程序所使用的每个配置文件中均需要的根元素。

system.web

指定配置文件中 ASP.NET 配置设置的根元素。 包含各种配置元素,这些配置元素配置 ASP.NET Web 应用程序并控制这些应用程序的行为方式。

caching

为 Web 应用程序配置缓存设置。

备注

默认配置

下面的默认 outputCache 元素不是在计算机配置文件或根 Web.config 文件中显式配置的,而是由 .NET Framework 版本 2.0 中的应用程序返回的默认配置。

<outputCache enableOutputCache = "true" 
             enableFragmentCache = "true" 
             sendCacheControlHeader = "true" 
             omitVaryStar = "false"
             defaultProvider="AspNetInternalProvider">
</outputCache>

以下示例显示如何禁用 ASP.NET 应用程序的输出缓存:

<outputCache enableOutputCache="false" />

可扩展输出缓存

ASP.NET 使您能够扩展输出缓存,并配置一个或多个自定义输出缓存提供程序。 输出缓存提供程序可使用任何存储机制保存 HTML 内容。 这些存储选项包括本地或远程磁盘、云存储和分布式缓存引擎。

输出缓存提供程序扩展性,您可以为网站设计更主动且更智能的输出缓存策略。 例如,可以创建这样一个输出缓存提供程序,该程序在内存中缓存站点流量“排名前 10”的页面,而在磁盘上缓存流量较低的页面。 或者,也可以对所呈现页面的各种变化因素组合进行缓存,但应使用分布式缓存以减少前端 Web 服务器的内存消耗。

通过从 OutputCacheProvider 类型派生一个类,可以创建自定义输出缓存提供程序。 可以使用 outputCache 元素的providers 子节在 Web.config 文件中对提供程序进行配置。

默认情况下, ASP.NET中所有HTTP 响应、所呈现的页面和控件均使用上例(其中 defaultProvider 特性设置为 AspNetInternalProvider)所示的内存输出缓存。 通过为 defaultProvider 指定不同的提供程序名称,可以更改用于 Web 应用程序的默认输出缓存提供程序。

此外,还可以针对各个控件和各个请求选择不同的输出缓存提供程序。 要为不同的 Web 用户控件指定不同的输出缓存提供程序,最简便的方法是使用页面或控件指令中 providerName 特性以声明方式进行选择,如下面的示例所示:

<%@ OutputCache Duration="60" VaryByParam="None" 
    providerName="DiskCache" %>

可以为某个 HTTP 请求指定不同的输出缓存提供程序,可以覆盖 Global.asax 文件中新的 GetOutputCacheProviderName 方法,以编程方式指定要用于特定请求的提供程序。

请参见

任务

演练:使用输出缓存增强网站性能

如何:锁定 ASP.NET 配置设置

参考

OutputCache

概念

ASP.NET 缓存概述

保证 ASP.NET 配置的安全

ASP.NET 配置方案

其他资源

ASP.NET 网站管理