【发布时间】:2009-10-01 22:36:28
【问题描述】:
我非常需要这方面的帮助。我在 IIS 5 中有一个经典的 ASP 网站,我需要将 pdf 流式传输给用户。我正在使用 ADODB.Stream 生成二进制数据块并使用 response.BinaryWrite 将其流式传输到客户端。现在的问题是 IE 中有一个已知功能,默认情况下,对于 SSL (https) 站点,它会将 Response CacheControl 标头设置为“无缓存”。因此我得到了标准错误:
“Internet Explorer 无法从 ServerName 下载 File.doc。
Internet Explorer 无法打开此 Internet 站点。请求的站点不可用或找不到。请稍后再试。”
我在流式传输之前设置了 Response.CacheControl = "private,must-revalidate,max-age=3600",但它仍然报错。
注意:相同的代码在所有其他浏览器(如 firefox 和 netscape)中都能完美运行。我在 firefox 中使用 LiveHttpHeaders 来查看 Response.CacheControl 在 firefox 中自动正确设置。不幸的是,我无法在我的机器上安装 Fiddler,但我猜问题是由于 IIS 默认标头 CacheControl = "no-cache" for https
我已取消选中 IE 中的“不将加密页面保存到磁盘”选项。
我需要一种方法来解决这个问题,因为必须尽快通过现有技术向互联网上的用户提供该选项:(
【问题讨论】:
标签: asp-classic https download