C# 让IE6、7、8通过ssl从我们的站点可靠地下载office文档

C# 让IE6、7、8通过ssl从我们的站点可靠地下载office文档,c#,asp.net,internet-explorer,ssl,download,C#,Asp.net,Internet Explorer,Ssl,Download,我有一个ASP.NET web应用程序,使用有效的商业证书通过HTTPS浏览整个网站。在应用程序的一部分中,可以下载Excel电子表格。 下载从POST启动(从链接按钮发回) 响应被清除(Response.Clear()、Response.BinaryWrite(bytes[])等等。。就像我们在上千个项目中所做的那样,所有的工作都很好,设置了正确的内容头,一切都正常。这里唯一的区别是SSL,但我看不出这有什么关系。是的,有大量关于缓存头的链接,这些链接阻止IE将文件放入临时internet文件

我有一个ASP.NET web应用程序,使用有效的商业证书通过HTTPS浏览整个网站。在应用程序的一部分中,可以下载Excel电子表格。 下载从POST启动(从链接按钮发回)

响应被清除(Response.Clear()、Response.BinaryWrite(bytes[])等等。。就像我们在上千个项目中所做的那样,所有的工作都很好,设置了正确的内容头,一切都正常。这里唯一的区别是SSL,但我看不出这有什么关系。是的,有大量关于缓存头的链接,这些链接阻止IE将文件放入临时internet文件中,这样就可以启动相关的office程序来打开它等等。。。这些我都看过了。我已经用fiddler和LiveHeaders(FF扩展名)验证了缓存头,并且可以确认“cache:private;”是生产站点和我的本地开发设置在响应中发送的内容


如果我在本地IIS实例上设置SSL证书并运行项目,我可以使用IE打开或保存完全相同的电子表格,而不会出现任何问题(我知道live production文件没有问题,因为FireFox下载它不费吹灰之力,真让人吃惊!),从生产web服务器上,IE6说远程主机断开了,IE7只是坐在那里下载,直到时间结束(真的很有用!)嘎,我简直要发疯了。

你试过MIME头吗?

SSL、附件和IE是可怕的混合体。这是一个已知的错误(有人称之为“功能”),IE和某些通过SSL的HTTP头。基本上,如果浏览器被告知不存储该文件,所发生的情况是,该文件在提供给用户之前基本上已被删除。实际上,您希望允许他们缓存它


这里有一个关于它的例子。而且。

我骨子里同意,我觉得是IE处理了我读过的这两篇文章的反应。但是,dev和prod服务器都发送相同的缓存头,并且在dev上它可以工作,但在prod中不可以。我认为我必须接受这个问题没有正确的答案,因为它取决于许多环境变量。接受这个答案,因为它有最相关的链接。