记得之前在写缓存DEMO的时候,好像配置过这个元素,好像这个元素还有点常用。
一、caching元素列表
元素 | 说明 |
---|---|
cache |
定义全局应用程序缓存设置。 可选的元素。 |
outputCache |
指定应用程序范围的输出缓存设置。 可选的元素。 |
outputCacheSettings |
指定可以应用于应用程序中页的输出缓存设置。 可选的元素。 |
sqlCacheDependency |
为 ASP.NET 应用程序配置 SQL 缓存依赖项。 可选的元素。 |
1、cache
属性
特性 |
说明 |
---|---|
disableMemoryCollection |
获取或设置一个值,该值指示是否当计算机处于内存压力下时是否禁止执行缓存内存回收。 可选的 Boolean 特性。 |
disableExpiration |
获取或设置一个值,该值指示是否禁用缓存过期。 如果禁用,则缓存项不会过期,并且不会对过期缓存项执行后台清理。 可选 Boolean 特性。 |
privateBytesLimit |
获取或设置一个值,该值指示在缓存开始刷新过期项并尝试回收内存之前应用程序的最大专用字节大小。 此限制同时包括缓存所使用的内存量以及运行应用程序的正常内存开销。 如果设置为零,则指示 ASP.NET 将使用自己的试探法确定何时开始回收内存。 可选 Int64 特性。 |
percentagePhysicalMemoryUsedLimit |
获取或设置一个值,该值指示在缓存开始刷新项并尝试回收内存之前可使用的计算机的物理内存的最大百分比。请注意,此限制适用于使用中的总物理内存。 设置为 0 会导致在插入项后立即将其移除。 可选 Int32 特性。 |
privateBytesPollTime |
获取或设置一个值,该值指示两次轮询应用程序专用字节内存使用量之间的时间间隔。 可选 TimeSpan 特性。 |
位置
caching -> configuration-> system.web //该元素放于<system.web>下的<configuration>节点下
示例:
<cache disableMemoryCollection = "false" //不禁止内存回收
disableExpiration = "false" //缓存不会过期
privateBytesLimit = "20971520" //当内存到这个值时,开始回收内存
percentagePhysicalMemoryUsedLimit = 60" //当程序使用超过60%的内存时,开始回收
privateBytesPollTime = "00:01:00"/> //1秒检测一次当前程序所有内存大小
2、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 提供的内存缓存。 |
位置
caching -> configuration-> system.web
示例
<outputCache enableOutputCache = "true" //启用缓存页
enableFragmentCache = "true" //启用程序片段缓存
sendCacheControlHeader = "true" //cache-control:private 标头由输出缓存模块发送
omitVaryStar = "false" //表示为输出缓存页发送“Vary: *”标头。
defaultProvider="AspNetInternalProvider"> //输出缓存提供程序。
</outputCache>
子元素providers 元素
add |
可选元素。 将自定义输出缓存提供程序添加到应用程序可用提供程序的集合。 |
clear |
可选元素。 从应用程序可用提供程序的集合中移除所有配置的输出缓存提供程序。 |
remove |
可选元素。 从应用程序提供程序的集合中移除指定的输出缓存提供程序。 |
示例:
<providers>
<add />
<clear />
<remove />
</providers>
3、
4、sqlCacheDependency
特性 |
说明 |
---|---|
enabled |
必选的 Boolean 特性。 指示是否轮询更改。 |
pollTime |
可选 Int32 特性。 设置 SqlCacheDependency 类实例轮询数据库表更改的频率。 此值对应于连续两次轮询之间的毫秒数。 不能将其设置为小于 500 毫秒的值。 默认值为 1 分钟。 |
子元素
元素 |
说明 |
---|---|
databases |
可选元素。 包含一个或多个可以由 SqlCacheDependency 类实例使用的命名的 SQL 连接。 |
位置
caching -> configuration-> system.web
SQL依赖缓存配置
<compilation debug="true" targetFramework="4.0" /> <caching> <sqlCacheDependency enabled="true" pollTime="1000"> //此行配置的意思是,开启数据库缓存,轮询时间为1秒,这是为了能够快速看到更改效果 <databases> <add connectionStringName="ApplicationServices" name="con"/> </databases> </sqlCacheDependency> </caching>
三、示例
页面输出缓存配置示例:
<outputCacheSettings>
<outputCacheProfiles>
<add name="ServerOnly"
duration="60" //过期时间为60秒
varyByCustom="browser"
location="Server" />
</outputCacheProfiles>
</outputCacheSettings>