Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# PDF下载失败,显示消息;不能';“不能下载”;只有在IE11中_C#_Asp.net_Internet Explorer_Webforms - Fatal编程技术网

C# PDF下载失败,显示消息;不能';“不能下载”;只有在IE11中

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

我将ASP.NET与web表单一起使用,一些本应非常简单的问题让我发疯,有人问过类似的问题,但没有一个对我有帮助,即拒绝下载我的文件

注意事项:

  • 我正在本地测试
  • 它适用于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??