ASP.NET web.config 配置缓存

本文详细介绍了如何在ASP.NET中通过web.config配置页面输出缓存和全局应用程序缓存。对于页面输出缓存,重点讲解了Duration属性(设定缓存时间)和VaryByParam属性(根据参数变化决定缓存)。而在全局缓存配置中,讨论了disableMemoryCollection、disableExpiration等关键设置,以及如何在基类Page中统一添加缓存初始化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、web.config 配置页面输出缓存

<system.web>
    <caching>
      <outputCacheSettings>
        <outputCacheProfiles>
          <add name="pageCache" duration="60" varyByParam="none" enabled ="true"/>
        </outputCacheProfiles>
      </outputCacheSettings>
    </caching>
</system.web>

页面调用:

<%@ OutputCache CacheProfile="pageCache" %>

(1)Duration属性
该属性指定页或用户控件进行缓存的时间,以秒为单位。在页或用户控件上设置该属性为来自对象的 HTTP 响应建立了一个过期策略,并将自动缓存页或用户控件输出。
例如:设置页或用户控件进行输出缓存的持续时间为100秒。代码如下:
<%@ OutputCache Duration="100" VaryByParam="none" %>
注意:这是必选属性。如果未包含该属性,将出现分析器错误。


(2)VaryByParam属性
该属性为分号分隔的字符串列表,用于使输出缓存发生变化。默认情况下,这些字符串与随GET方法发送的查询字符串值对应,或与使用POST方法发送的参数对应。将该属性设置为多个参数时,对于每个指定参数组合,输出缓存都包含一个不同版本的请求文档。可能的值包括none、星号 (*)以及任何有效的查询字符串或POST参数名称。
注意:在ASP.NET页和用户控件上使用@OutputCache指令时,需要包含VaryByParam属性或VaryByControl属性。如果没有包含VaryByParam属性或VaryByControl属性,则发生分析器错误。如果不希望通过指定参数来改变缓存内容,可将VaryByParam属性值设置为none。如果希望通过所有的参数值改变输出缓存,可将属性设置为星号(*)。


二、web.config 配置 asp.net 应用程序全局缓存配置

<cache disableMemoryCollection = "false"     //获取或设置一个值,该值指示是否当计算机处于内存压力下时是否禁止执行缓存内存回收
  disableExpiration = "false"                  //获取或设置一个值,该值指示是否禁用缓存过期。如果禁用,则缓存项不会过期,并且不会对过期缓存项执行后台清理。
  privateBytesLimit = "20971520"       //获取或设置一个值,该值指示在缓存开始刷新过期项并尝试回收内存之前应用程序的最大专用字节大小。 此限制同时包括缓存所使用的内存量以及运行应用程序的正常内存开销。 如果设置为零,则指示 ASP.NET 将使用自己的试探法确定何时开始回收内存。
  percentagePhysicalMemoryUsedLimit = 60" 
  privateBytesPollTime = "00:01:00"/>    //获取或设置一个值,该值指示两次轮询应用程序专用字节内存使用量之间的时间间隔。

 

备注:给页面统一加上缓存

public class basepage : System.Web.UI.Page
{
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        this.InitOutputCache(1000, null, null, OutputCacheLocation.ServerAndClient, "*");
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值