PDF下载无法仅在IE11中显示“无法下载”消息

时间:2015-04-10 23:09:50

标签: c# asp.net internet-explorer webforms

我在网页表单中使用ASP.NET,这应该是非常简单的事情让我发疯,类似的问题已被问到,但没有一个帮助我,IE拒绝下载我的文件。

需要注意的事项:

  • 我在本地测试
  • 适用于Firefox和Chrome但不适用于IE11
  • IE将文件名更改为页面名称(例如,它尝试保存default_aspx而不是myfile.pdf) File name changed enter image description here

这是我的代码:

Response.ClearHeaders();
Response.ClearContent();
Response.ContentType = "Application/pdf";
Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
Response.BinaryWrite(buffer);
Response.End();

这些是我从IE获得的标题:

关键值

响应HTTP / 1.1 200确定

Cache-Control private

内容类型申请/ PDF

服务器Microsoft-IIS / 7.5

内容 - 处置附件;文件名= myfile.pdf

X-AspNet-Version 4.0.30319

X-Powered-By ASP.NET

日期星期五,2015年4月10日22:44:40 GMT

内容长度691892

更新

这似乎是服务器配置问题,因为相同的代码在我的生产服务器中可以正常工作,但在我的开发服务器中却不行。 所以我的客户不会抱怨这个,无论如何我想在我的开发环境中修复它,只要我有时间我会调查一下,如果我找到一个解决方案我会在这里发布。

4 个答案:

答案 0 :(得分:5)

我们在ie8中遇到了类似的问题,问题是文件是在缓存中搜索而找不到的。要测试这个,请在​​响应对象中设置Cache-Control:no-cache。

答案 1 :(得分:3)

这不是确切的答案,但希望能够找到一些方法来找到确切的答案。

谷歌搜索时发现这可能是由于微软针对IE发布了安全更新。

  微软发布了一项安全措施   在7月8日更新IE11,其中有一个影响下载的错误。

以下是Microsoft Connect Link有效状态下提及此内容。

请在找到后分享确切的解决方案。

干杯!!

答案 2 :(得分:2)

我在自己的应用程序中做了类似的事情。尝试删除content-disposition标题,然后将Application/pdf更改为application/pdf。您也可能不需要Response.End(),但我怀疑这是导致问题的原因。

答案 3 :(得分:1)

我过去遇到过类似的问题,我会尝试明确设置响应内容长度。

Response.AddHeader("Content-Length", buffer.Length.ToString())