2009-07-23 52 views
1

所以...我有一个HTTP处理程序,它提供文档。响应contentType被正确设置,但处理程序的url没有扩展名,即pdf。Internet Explorer和服务文件与asp.net httphandlers

它看起来像这样:

http://mysite/handler.ashx?id=123&locale=123

当我访问这个网址在Firefox /铬等(即体面的浏览器),一切都很好(浏览器中正确选择插件(例如Acrobat Reader软件)在浏览器中呈现文件)。

如果我在Internet Explorer 7中访问此URL,第一次一切都很好。如果我按刷新或在不关闭浏览器的情况下再次访问URL,我会看到一个对话框,询问“您想打开还是保存该文件”!如果我点击打开,没有任何反应!

接下来,我创建了一个重定向页面...所以我参观

http://mysite/redirectto.aspx?id=123&locale=123

本页面只是重定向到原始URL和问题仍然上面提到发生。

不是说无论是需要插件来渲染文件,即使用acrobat reader使用替代文件,pdf的tiff文件都会出现同样的问题 - 它们都有完全相同的问题!

想法??

+0

我真的很想看到你的HTTP响应头(与Fiddler2或类似的抓住他们)。如果你确实发送了正确的内容类型,那么我不希望看到这个问题。 – EricLaw 2009-07-23 15:38:55

回答

1

所以......

我创建了包含风格以填充页面的iframe一个中间页。 iframe指向httphandler。 即

这解决了Internet Explorer的问题。

最重要的是该解决方案无需额外配置:)

1

我已经做了类似的事情,不幸的是去年,我不在同一个campany,能够引用我的代码来给出完整的解决方案。我们最终做的是使用一个用于pdf的URL,但有一个http模块提取这些请求并根据需要处理它们。

编辑 - 当我说http模块时,它可能是一个http处理程序或其他东西。就像我刚才说的那样,那是前一阵子。总的来说,它是一些代码在请求进入服务器之后被触发,然后直接进入一个页面,所以我们发现了something.pdf,并且数据被抛回到调用者身上,而且看起来好像它是从服务器读取静态PDF。