仅通过Web.config为特定位置添加缓存头

时间:2012-02-09 10:28:06

标签: asp.net iis-6 cache-control

我们有一个由第三方开发的应用程序,我不想回到它们,让它们为特定页面添加缓存控制。

需要禁用缓存的所有页面都在一个目录中。

问题是IE似乎没有遵循Cache-control:nocache,所以我们需要添加Pragma:nocache和cache age。

有没有办法在目录中使用配置?它会在所有子目录中级联吗?可以通过主web.config吗?

要清楚,我不是想通过代码来实现这一点,它需要通过配置IIS或web.config文件来实现。

我们在IIS 6.0上使用ASP.NET 2.0和4.0。

2 个答案:

答案 0 :(得分:3)

这可以在IIS中使用UI完成,它实际上非常简单,或者至少在我的用例中。

您所做的只是打开IIS管理器,导航到该站点,然后将要添加标题的目录添加到右键单击 - >属性。

单击“标题”选项卡,然后添加所需的标题。

以递归方式向下移动子目录,并在代码添加之前添加标头。

在IIS 7.0 / 7.5中,您可以在每个目录中使用web.config的StaticContent部分。

答案 1 :(得分:1)

您可以在global.asax

上执行此操作
protected void Application_BeginRequest(Object sender, EventArgs e)
{
    HttpApplication app = (HttpApplication)sender;
    string cTheFile = HttpContext.Current.Request.Path;

    if (cTheFile.Contains("/ExtraDir/"))
    {
        // add your header here
        app.Response.AppendHeader("Pragma", "no-cache");    
    }

    //... rest code of...
}