不同用户控件的不同输出缓存超时

时间:2011-08-25 12:46:25

标签: asp.net outputcache

我有几个usercontrols,我希望有不同的输出缓存超时。

我尝试过以下但未成功:

  • 设置cacheprofile(显然只能在aspx页面上完成)。
  • 在codebehind中执行以下操作:

    Response.Cache.SetExpires(DateTime.Now.AddDays(OutputCaching.QuickTimeout))

    Response.Cache.SetCacheability(HttpCacheability.Public)

    Response.Cache.SetValidUntilExpires(真);

    Response.Cache.VaryByParams.IgnoreParams = true;

显然只有<%@ OutputCache Duration="6000" VaryByParam="" %>有效,但是没有办法从配置文件或appsettings文件中获取持续时间?

1 个答案:

答案 0 :(得分:0)

从技术上讲,它可能基于this article备注,但认为

  

HttpCacheability.Server = @ OutputCache

而不是

  

HttpCacheability.Public

以下是HttpCacheability的文档,这将帮助您为您选择正确的选择。

此外,我认为最好将代码放在Page_Init或Page_PreInit中,如下所示:

Private Sub Page_Init(sender As Object, e As System.EventArgs) Handles Me.Init
    Me.Response.Cache.SetCacheability(HttpCacheability.Server)
    Me.Response.Cache.SetExpires(Date.Now.AddMinutes(10))
    Me.Response.Cache.SetValidUntilExpires(True)
    Me.Response.Cache.VaryByParams.IgnoreParams = True
End Sub

此致