IIS7 -客户端缓存已经没有缓存数据集的.ashx文件



在IIS7中,我有一个来自第三方的.ashx文件,该文件将缓存头设置为no-cache,private

我想把它缓存在客户端上,所以我在global.asax

中添加了以下代码
void Application_EndRequest(object sender, EventArgs e)
{
    if (Request.Path.IndexOf("Script.ashx") > -1)
    {
      Response.Cache.SetCacheability(HttpCacheability.Public);
      Response.Cache.SetExpires(DateTime.Now.AddDays(7));
      Response.Cache.SetValidUntilExpires(true);
      Response.Cache.VaryByHeaders["Accept-Language"] = true;
    }
}
我希望得到的缓存信息是public, Expires: Thu, 29 Sep 2011 16:06:27 GMT

然而我得到的却是no-cache,public Expires: Thu, 29 Sep 2011 16:06:27 GMT的弗兰肯反应

所以代码正在用我想要的公共替换私有,但它无法替换无缓存指令。是否有可能用这种方法取代无缓存指令:如果是这样,我错过了什么;如果没有,还有什么其他方法?

上述代码在IIS7经典模式下失败,但在集成模式下,代码按预期工作并产生合理的响应头。我认为这是由于classic的工作方式类似于ISAPI过滤器。我已经切换到集成模式,这已经解决了问题。

最新更新