C# PDF下载失败,显示消息;不能';“不能下载”;只有在IE11中
我将ASP.NET与web表单一起使用,一些本应非常简单的问题让我发疯,有人问过类似的问题,但没有一个对我有帮助,即拒绝下载我的文件 注意事项:C# PDF下载失败,显示消息;不能';“不能下载”;只有在IE11中,c#,asp.net,internet-explorer,webforms,C#,Asp.net,Internet Explorer,Webforms,我将ASP.NET与web表单一起使用,一些本应非常简单的问题让我发疯,有人问过类似的问题,但没有一个对我有帮助,即拒绝下载我的文件 注意事项: 我正在本地测试 它适用于Firefox和Chrome,但不适用于IE11 IE将文件名更改为页面名称(例如,它尝试保存默认的_aspx而不是myfile.pdf) 这是我的代码: Response.ClearHeaders(); Response.ClearContent(); Response.ContentType = "Applicatio
- 我正在本地测试
- 它适用于Firefox和Chrome,但不适用于IE11
- IE将文件名更改为页面名称(例如,它尝试保存默认的_aspx而不是myfile.pdf)
Response.ClearHeaders();
Response.ClearContent();
Response.ContentType = "Application/pdf";
Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
Response.BinaryWrite(buffer);
Response.End();
以下是我从IE获得的标题:
关键值
响应HTTP/1.1200正常
缓存控制专用
内容类型应用程序/PDF
服务器Microsoft IIS/7.5
内容处置附件;filename=myfile.pdf
X-AspNet-Version 4.0.30319
X-Powered-By ASP.NET
日期2015年4月10日星期五格林尼治标准时间22:44:40
内容长度691892
更新
这似乎是一个服务器配置问题,因为相同的代码在我的生产服务器中可以正常工作,但在我的开发服务器中不能。
所以我的客户不会对此抱怨,不管怎样,我想在我的开发环境中修复它,只要我有时间,我会再调查一点,如果我找到解决方案,我会把它发布在这里。我在自己的应用程序中也做了类似的事情。尝试删除
内容配置
标题,并将Application/pdf
更改为Application/pdf
。您也可能不需要Response.End()
,尽管我怀疑这是导致问题的原因 这不是确切的答案,但希望它能为找到确切答案开辟一些途径
在谷歌搜索时,我发现这可能是由于微软发布了IE的安全更新
微软发布了一份安全声明
IE11于2014年7月8日更新,有一个影响下载的bug
下面是在活动状态下提到这一点的示例
一旦你找到确切的解决方案,请与我们分享
干杯 我们在ie8中遇到了一个类似的问题,问题是文件在缓存中搜索,但没有找到。要测试这一点,请设置缓存控制:响应对象中没有缓存。我过去也遇到过类似问题,我会尝试显式设置响应内容长度
Response.AddHeader("Content-Length", buffer.Length.ToString())
如果问题不清楚,你应该避免回答。OP需要content disposition标头,而content Type标头的值不区分大小写。使用评论要求澄清。,。使用Chrome下载后,您是否验证了您的内容长度与您的内容的实际大小相匹配?您是否尝试过从另一台机器上使用IE?此问题可能是由浏览器的某些设置引起的。我发现一篇关于IE早期版本的文章也有同样的问题:你能提供一些关于如何以及何时调用你的响应代码的信息吗?它是对请求的URL的自动响应吗?它是在一个按钮点击事件上吗?你正在使用哪个确切版本的IE??