我有一个ASP.NET Web应用程序,使用有效的商业证书通过HTTPS浏览整个站点。在应用程序的一部分中,可以下载Excel电子表格。 下载是从POST(LinkButton的PostBack)
启动的响应被清除(Response.Clear(),Response.BinaryWrite(bytes []))等等。就像我们在一千个项目中完成的一切都正常,正确的内容标题设置和一切。这里唯一的区别是SSL,但我看不出它是如何相关的。是的,有很多关于缓存标题的链接,阻止IE将文件放到临时的互联网文件,所以相关的办公程序可以启动打开它等等yadda ...我已经阅读了所有这些。我已经使用fiddler和LiveHeaders(FF Extension)验证了缓存头,并且可以确认“缓存:私有;”是来自生产站点和我当地开发人员设置的响应中发送的内容。
如果我在本地IIS实例上设置SSL证书并运行项目,我可以打开或保存完全相同的电子表格,使用IE没有任何问题(我知道现场制作文件没有任何问题,因为FireFox下载它没有汗水,真是一个惊喜!)然而,从生产网络服务器IE6说远程主机发现和IE7只是坐在那里下载,直到时间结束(真有帮助!)加,我正在撕裂我的头发
答案 0 :(得分:3)
SSL,附件和IE是一个可怕的组合。这是一个已知的错误(有些人称之为“功能”)与IE和SSL上的某些HTTP标头。基本上,如果浏览器被告知不存储文件,那么它在被提供给用户之前基本上被删除了。你实际上想让它们缓存它。
这是关于它的Microsoft support article。并another。
答案 1 :(得分:0)
您是否尝试过Content Disposition MIME标头?