在IE 5.5 / IIS 5.0中通过HTTPS下载文件

时间:2009-10-01 22:36:29

标签: asp-classic https download

我非常需要帮助。我在IIS 5中有一个经典的ASP网站,我需要将pdf流式传输给用户。我正在使用ADODB.Stream生成大量二进制数据,并使用response.BinaryWrite将其流式传输到客户端。现在的问题是,IE中存在一个已知功能,默认情况下,SSL(https)站点将Response CacheControl标头设置为“no-cache”。因此我得到标准错误:

“Internet Explorer无法从ServerName下载File.doc。

Internet Explorer无法打开此Internet站点。请求的网站不可用或无法找到。请稍后再试。“

我在流式传输之前设置了Response.CacheControl =“private,must-revalidate,max-age = 3600”,但仍然会出错。

注意:相同的代码在firefox和netscape等所有其他浏览器中都能正常运行。我在firefox中使用LiveHttpHeaders看到在firefox中自动设置了Response.CacheControl。不幸的是我无法在我的机器上安装Fiddler,但我猜测问题是由于IIS默认标头CacheControl =“no-cache”for https

我已取消选中IE中的“不要将加密的页面保存到磁盘”选项。

我需要解决这个问题,因为必须通过互联网使用现有技术很快将这个选项提供给用户:(

3 个答案:

答案 0 :(得分:1)

从这里开始:http://blogs.msdn.com/ieinternals/archive/2009/10/02/Internet-Explorer-cannot-download-over-HTTPS-when-no-cache.aspx以便更全面地讨论这个问题。您很可能正在发送一个或多个禁止缓存的标头。

陈述......

  

IE中有一个已知的功能   设置Response CacheControl标头   默认为SSL为“no-cache”   (https)网站

...不正确。你的意思是说“IIS”吗?哪个版本?我从来没有听说过这样的功能。

我不知道为什么你不能在有问题的机器上使用Fiddler?

答案 1 :(得分:1)

也许这可能会有所帮助: http://blogs.msdn.com/b/ieinternals/archive/2009/10/02/internet-explorer-cannot-download-over-https-when-no-cache.aspx

我解决了在iis管理控制台的http标头选项卡上检查“启用内容过期”的类似问题。

答案 2 :(得分:0)

您可以放弃将Internet Explorer 5.5的支持作为市场的it has less than .5%。这么低,他们在08年6月停止追踪它。