相关疑难解决方法(0)

生成PDF,IE和HTTPS出错

我正在将PDF流式传输到ASP.NET 2.0中的浏览器.这适用于所有浏览器,通过HTTP和所有浏览器,除了通过HTTPS的IE.据我所知,这曾经在所有版本的IE中工作(过去5年左右),但我们的客户最近才开始报告问题.我怀疑默认情况下禁止将加密页面保存到磁盘安全选项,并且在某些时候默认启用(Internet选项 - >高级 - >安全性).关闭此选项有助于作为解决方案,但作为长期解决方案不可行.

我收到的错误消息是:

Internet Explorer无法从www.sitename.com下载OutputReport.aspx.

Internet Explorer无法打开此Internet站点.请求的网站不可用或无法找到.请稍后再试.

用于创建PDF的工具是DataDynamics的 ActiveReports .创建PDF后,下面是发送它的代码:

Response.ClearContent()
Response.ClearHeaders()
Response.AddHeader("cache-control", "max-age=1")
Response.ContentType = "application/pdf"
Response.AddHeader("content-disposition", "attachment; filename=statement.pdf")
Response.AddHeader("content-length", mem_stream.Length.ToString)
Response.BinaryWrite(mem_stream.ToArray())
Response.Flush()
Response.End()  
Run Code Online (Sandbox Code Playgroud)

注意:如果我没有明确指定缓存控制,那么.NET代表我发送no-cache,所以我尝试将cache-control设置为:private或public或maxage =#,但这些似乎都不起作用.

这是扭曲:当我运行Fiddler检查响应头时,一切正常.我收到的标题是:

HTTP/1.1 200 OK
缓存控制:max-age = 1
日期:2009年7月29日星期三17:57:58 GMT
内容类型:application/pdf
服务器:Microsoft-IIS/6.0
MicrosoftOfficeWebServer:5.0_Pub
X-Powered-By :ASP.NET
X-AspNet-Version:2.0.50727
content-disposition:attachment; filename = statement.pdf
Content-Encoding:gzip
Vary:Accept-Encoding
Transfer-Encoding:chunked

一旦我关闭Fiddler并再次尝试,它就会再次失败.我注意到的另一件事是,当Fiddler正在运行时,我得到一个这个网站的安全证书警告消息有问题,我必须点击继续到这个网站(不推荐)才能通过.当Fiddler关闭时,我没有遇到此安全警告,它立即失败.

我很好奇Fiddler和浏览器之间发生了什么,以便它在Fiddler运行时运行但在不运行时会中断,但更重要的是,是否有人有任何想法如何更改我的代码以便将PDF流式传输到IE而无需进行更改到客户端机器?

更新: Fiddler问题得到解决,非常感谢EricLaw,所以现在它的行为始终如一(破坏,有或没有Fiddler运行).

基于谷歌搜索,似乎有大量关于同一问题的报告遍布整个网络,每个报告都有自己特定的响应标题组合,似乎可以解决各个案例的问题.我已经尝试了很多这些建议,包括添加ETag,LastModified日期,删除Vary标头(使用Fiddler)以及Cache-Control和/或Pragma标头的几十种组合.我尝试了ContentType的"Content-Transfer-Encoding:binary"以及"application/force-download".到目前为止,没有任何帮助.有一些 Microsoft 知识库 文章,所有这些都表明Cache-Control:no-cache是罪魁祸首.还有其他想法吗?

更新:顺便说一句,为了完整性,Excel和Word输出也会出现同样的问题.

更新:没有取得任何进展.我通过电子邮件将.SAZ文件从Fiddler发送给EricLaw,他在调试IE时能够重现这个问题,但还没有解决方案.赏金即将到期......

pdf asp.net https internet-explorer fiddler

12
推荐指数
1
解决办法
2万
查看次数

标签 统计

asp.net ×1

fiddler ×1

https ×1

internet-explorer ×1

pdf ×1