如何让 IE6 认真对待 ContentType?

Posted

技术标签:

【中文标题】如何让 IE6 认真对待 ContentType?【英文标题】:How do I get IE6 to take ContentType seriously? 【发布时间】:2010-12-04 17:03:43 【问题描述】:

我正在使用第三方 ActiveX 控件,我们使用该控件将 TIFF 图像从 ASP.Net(3.5) Web 表单加载到客户端浏览器中。 ActiveX 控件将自身正确注册(据我所知)作为 TIFF 图像的 MIME 处理程序,并且每次在本地双击文件时都能正常工作。但是,IE6 和 ActiveX 控件的行为会有所不同,具体取决于我目前能够识别的几种情况。

编辑 ActiveX 控件实际上根本不在网页中(没有标记)。客户端将安装 ActiveX 控件,并且通过将原始图像流式传输到客户端,ActiveX 控件会根据 MIME 处理自动在浏览器中生成。 结束编辑

出于背景目的,我们使用 Response.BinaryWrite(buffer) 将图像流式传输到浏览器,其中 buffer 是包含二进制图像的字节数组。我也尝试在 Web 表单中使用 Response.TransmitFile() 和其他一些方法。 Web 服务器运行 Server 2003 SE SP2,网站运行在 IIS6 下。

如果我在流式传输之前设置 Response.ContentType = "image/tiff",则 ActiveX 控件无法在 IE6 中加载。 如果我在查询字符串中的任何位置指定图像的名称,或者就此而言,“.tif”,ActiveX 控件在 IE6 中成功加载。 如果我使用 FireFox,一切都会完美运行(在此处插入“IE6 糟透了”的陈词滥调)。

我对 IE6 用于确定 MIME 处理的注册表设置进行了大量研究,甚至尝试在客户端上禁用 MIME sniffing/MIME handling,但均无济于事。我不介意在查询字符串中指定“.tif”,但即使这样也不能在 Citrix 客户端上成功加载控件,它会喊“注册表!”在我身上。

哦,还有一件事;要求在不提示用户的情况下加载 ActiveX 控件,因此不可能添加带有“附件;文件名=yaddayaddayadda.tif”的 Content-Disposition 标头。

有没有人遇到过这样的事情?如果你做到了,你是如何克服它的?是否有可以推送到客户端桌面的全局修复程序?我需要在网络服务器上设置什么吗?我觉得我什么都试过了。

提前致谢。

【问题讨论】:

【参考方案1】:

从您的问题中不清楚到底发生了什么。 ActiveX 控件是在 ASPX 页面上还是向 ASPX 页面发出请求?您是否使用 ASPX 来提供二进制 TIFF 数据?

【讨论】:

所以控件在不同的胖客户端exe中? A 向生成 TIFF 的 ASPX 发出请求,对吗?抱歉,但要准确地设想你在做什么仍然很棘手。

以上是关于如何让 IE6 认真对待 ContentType?的主要内容,如果未能解决你的问题,请参考以下文章

Valgrind 警告:我应该认真对待吗

在开发公共 RESTful API 时是不是应该认真对待不安全的直接对象引用?

认真对待每一天

认真对待 Python3 收邮件

既然喜欢就要认真对待

认真对待 Python3 收邮件