我可以将我的缓存行添加到global.asax吗?

时间:2010-03-18 11:20:58

标签: c# asp.net

使用以下代码行在c#asp.net文件中正常工作:

Response.Cache.SetExpires(DateTime.Now.AddSeconds(300));
Response.Cache.SetCacheability(HttpCacheability.Public);

我可以在global.asax中以某种方式设置这些,以便默认情况下我的整个应用程序将支持300秒的公共缓存吗?

1 个答案:

答案 0 :(得分:2)

是的,你可以这样做,可能是

protected void Application_PreRequestHandlerExecute(HttpApplication sender, EventArgs e)
{
    string sExtentionOfThisFile = System.IO.Path.GetExtension(HttpContext.Current.Request.Path);

    if (sExtentionOfThisFile.EndsWith("aspx", true, System.Globalization.CultureInfo.InvariantCulture) ||
        sExtentionOfThisFile.EndsWith("ashx", true, System.Globalization.CultureInfo.InvariantCulture) ||
        sExtentionOfThisFile.EndsWith("xml", true, System.Globalization.CultureInfo.InvariantCulture)
        )
    {           
       Response.Cache.SetExpires(DateTime.Now.AddSeconds(300));
       Response.Cache.SetCacheability(HttpCacheability.Public);        
   }
}

但是如果有任何页面需要,你就不能删除那么容易。

(我已经包含了一个页面测试,但只是为了看到它,你可以选择并测试,如果你赢得了所有这个标题的话。)