【发布时间】:2012-02-26 09:35:45
【问题描述】:
我很难让网页正常工作,但真的可以提供一些帮助。该页面通过启用 SSL 的 IIS 7 提供。在它上面,用户可以下载一个 .rtf 文件或多个 .rtf 文件的 .zip。这在 FF 和 Chrome 中工作得非常好,但是一旦引入 IE,最终用户就会收到一个带有以下错误的弹出窗口:
无法打开此 Internet 站点。请求的站点不可用 或找不到。请稍后再试。
使用 Fiddler,我可以看到标头的 Cache-Control 设置为 No-cache,并且 Pragma 也设置为 no-cache。根据几个论坛和博客,这会导致 IE 不允许从该页面下载文件。
我曾尝试像这样更改 ASP.NET 代码隐藏中的标头:
Response.AppendHeader("Pragma", "public");
Response.AppendHeader("Cache-Control", "must-revalidate,
post-check=0, pre-check=0");
Response.AppendHeader("Cache-Control", "public");
还有这个:
Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetMaxAge(TimeSpan.FromMinutes(1));
Response.Cache.SetValidUntilExpires(true);
这些都不起作用。标头仍设置为无缓存。
然后我尝试通过 IIS HTTP 响应标头模块向网站添加自定义标头修改,但这也不起作用。
This thread 接近回答我的问题,但没有说明他们如何能够重写标题。
我将非常感谢你们在我拔掉我剩下的头发时给我的任何帮助。
【问题讨论】:
-
尝试:Response.CacheControl = "public",或 Response.CacheControl = "private"
-
不幸的是,这也不起作用。标头仍然以“Cache-Control: no-cache”的形式出现
标签: asp.net iis-7 http-headers