我非常需要帮助。我在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中的“不要将加密的页面保存到磁盘”选项。
我需要解决这个问题,因为必须通过互联网使用现有技术很快将这个选项提供给用户:(
答案 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)
我解决了在iis管理控制台的http标头选项卡上检查“启用内容过期”的类似问题。
答案 2 :(得分:0)
您可以放弃将Internet Explorer 5.5的支持作为市场的it has less than .5%。这么低,他们在08年6月停止追踪它。