当用户请求下载文档时,我正在使用HttpResponse.OutputStream.Write方法将PDF文件写入HttpResponse。它适用于除Firefox(3.5.8)之外的所有浏览器。在Firefox中,它有时会显示文件,有时会显示实际的字节流。当它显示字节流时,http响应永远不会完成。我看到'传输数据'状态,字节流以EOF结束。过了一段时间,我得到'连接被重置'窗口。
alt text http://img31.imageshack.us/img31/7907/displaybytes.png alt text http://img193.imageshack.us/img193/7246/displayendofstream.png alt text http://img211.imageshack.us/img211/1774/timeout.png
这是响应标题:
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 103185
Content-Type: application/pdf
Expires: -1
Server: Microsoft-IIS/7.0
X-AspNet-Version: 2.0.50727
Content-Description: stuff.pdf
Content-Disposition: inline;filename="stuff.pdf"
X-Powered-By: ASP.NET
Date: Mon, 22 Feb 2010 16:15:38 GMT
答案 0 :(得分:1)
它可能还与分配给文档的mime类型的操作有关。例如在FF actions can be set。
但当然您还需要确保服务器正在传输correct mime type。
答案 1 :(得分:1)
我认为这个问题最有可能发生在Firefox或Acrobat插件中。
每当某些事情有时起作用而其他事情不起作用时,你必须密切关注这些差异。问题始终存在差异。
在您的情况下,您可能永远不知道原因,因为差异可能出在浏览器或插件中。你的标题看起来应该看起来像。它适用于所有其他浏览器。根据您的标题,这也是它在此浏览器中的工作方式。
我会向Mozilla提出这个问题并看看他们要说些什么。
作为一种潜在的解决方法,当用户的浏览器为FF时,您可以尝试将内容处置更改为“附件”。这将导致出现“打开或保存”对话框。然后,您的用户仍然可以点击“打开”在页面中查看。
Content-Disposition: attachment; filename=stuff.pdf
答案 2 :(得分:0)
当内联呈现的PDF文件受源代码控制且只读时,我们遇到了这个问题。我们使用VSS进行源代码控制,当我们部署PDF时,它的呈现方式与屏幕截图中的完全相同。然后,我们放了新的PDF副本然后它工作得很好。也许检查PDF是否只读,如果是,请尝试取出readonly属性并重试。
希望这有帮助。
谢谢,
拉加
答案 3 :(得分:0)
如果您右键单击并另存为保存为正确的PDF,您可以查看?我怀疑你写错了PDF或你的标题是错误的。
答案 4 :(得分:0)
看起来它没有完成请求。解决方案是将Response.End()
放在最后。