Internet Explorer中显示错误下载的Excel文件时在SSL网站

问题描述:

在SSL站点下载Excel文件时,我得到了以下错误:Internet Explorer中显示错误下载的Excel文件时在SSL网站

Internet Explorer cannot download xxxx.aspx from mysite.com. 
Internet Explorer was not able to open this Internet site. The requested site is either unavailable or cannot be found. Please try again later. 

谷歌搜索后,我怀疑它的响应头的问题。
我尝试在此页面的解决方案,并设置标题:
http://trac.edgewall.org/ticket/1020

  HttpContext.Current.Response.AddHeader("Pragma", "no-cache"); 
      HttpContext.Current.Response.CacheControl = "private"; 

但它不工作。 有什么建议吗?

Take a look at this article.这是从马的口中说出来的:)当我们切换到完整的SSL会话时,我们实际上只是面对同样的问题。

我导出到Excel时使用LocalReport遇到同样的问题。 的

Response.BinaryWrite(bytes); 

之前只是我们增加

Response.ClearHeaders(); 
Response.ClearContent(); 
Response.Buffer = true; 

和它的工作。

我也面临同样的问题,

当我GOOGLE了它,我发现,在响应报头“无chache”设置,即下面的代码是问题的原因。

Response.AppendHeader("Pragma", "no-cache") 
Response.AppendHeader("Cache-Control", "no-cache") 
Response.AppendHeader("max-age", "0") 

一些博客说,为了解决这个问题,你应该做的网络服务器和所有客户机在Windows注册表中的某些修改(:O),以及它是不可行的每个客户端上做的注册表设置机。

的根本原因是在响应头无缓存的设置,所以我刚添加

Response.ClearHeaders() 

添加内容被下载到所述响应报头的前面。代码如下所示,

Response.ClearHeaders() 
Response.ContentType = corspBean.ContentType 
Response.AppendHeader("content-disposition", "attachment; filename=""" + fileName + """") 
Response.BinaryWrite(fileBytes) 
Response.End() 

它修复了这个问题。

Enjoy !!!

我有一个类似的问题,我想流的PDF文件。即使在Response.ClearHeaders()我看到在运行时添加了Pragma和Cache-Control头。解决方案是清除IIS中的标题(右键单击 - >加载PDF页面上的属性,然后选择“Http headers”选项卡)。