1

我们继承了我们现在支持的新产品。它是一个使用 SVG 显示图表的 Web 应用程序。

在我的机器上,它运行完美。它使用 Adob​​e SVG viewer 3.0 加载和显示 SVG 图表。在客户机器上,SVG 图表不会加载。

我注意到 Web 应用程序在页面加载期间请求 MSXML3 ActiveX 控件。即使您允许上述 ActiveX 控件运行,SVG 图表也不会出现。

我检查了我的机器(工具->管理加载项->启用或禁用加载项),它甚至没有使用 MSXML3.DLL。唯一活跃的插件是 Adob​​e SVG Viewer 3.0。

两台机器都使用 IE7 并且都使用相同的“数据集”。

这里可能存在哪些问题?

谢谢!

4

3 回答 3

2

Msxml3 内置于从 XP 开始的所有操作系统中。但是有时您可能需要更高版本的它(比如 Vista 附带的 Sp10)。您可以下载的最大 SP 为 SP7。所有其他只能通过 Windows 更新获得。

您可以使用 Chloe 提供的链接:http: //www.microsoft.com/downloads/details.aspx? familyid=28494391-052B-42FF-9674-F752BDCA9582&displaylang= en 获取 MSXML 3。

据我所知,MSXML 6 不足以满足需要 MSXML 3 的应用程序。

您也可以使用依赖walker (可在此处获得)来检查应用程序ActiveX 需要什么dll。

于 2009-08-03T08:03:02.687 回答
2

客户的机器安装了 Visual Studio 2005。

Adobe SVG Viewer 和 Visual Studio 2005 互相讨厌,如本知识库文章中所述。http://support.microsoft.com/kb/916442

我们像这样嵌入 SVG 图表:

<embed src="PaintSVG?id=12345" type="image/svg+xml"></embed>

当你安装了 VS2005 时,它“将 application/xml MIME 类型与 .aspx 文件扩展名相关联”,所以现在 IE 认为你正在嵌入一个“aspx”文件,当它发现这个“aspx”文件是一个 XML 文档时,然后它会尝试加载它(解释为什么它要求 MSXML3 ActiveX 控件)。

作为一种解决方法,我们需要通过在 URL 末尾添加以下参数来“欺骗”我们实际上嵌入 SVG 文件的 IE:

&Dummy=SVG-VS2005-WorkAround.svg

像这样:

<embed src="PaintSVG?id=12345&Dummy=SVG-VS2005-WorkAround.svg" type="image/svg+xml"></embed>
于 2009-08-04T09:10:30.787 回答
1

只是预感,但尝试安装此
Microsoft XML Parser (MSXML) 3.0 Service Pack 7 (SP7)
http://www.microsoft.com/downloads/details.aspx?familyid=28494391-052B-42FF-9674-F752BDCA9582&displaylang=en

或者这个
Microsoft Core XML Services (MSXML) 6.0
http://www.microsoft.com/downloads/details.aspx?familyid=993c0bcf-3bcf-4009-be21-27e85e1857b1&displaylang=en的(看似)较新版本

您可能会在“控制面板”的“添加/删除程序”对话框中发现它已安装或未安装。

于 2009-08-03T07:54:05.017 回答