我们继承了一个我们现在支持的新产品。它是一个使用SVG显示图表的web应用程序。
在我的机器上,它运行得很好。它使用Adobe SVG viewer 3.0加载和显示SVG图表。在客户机器上时,SVG图表不会加载。
我注意到web应用程序在页面加载过程中请求MSXML3 ActiveX控件。即使您允许上述ActiveX控件运行,SVG图表也不会出现。
我检查了一下我的机器(Tools->Manage Add-ons->Enable or Disable Add-ons),它甚至没有使用MSXML3.DLL,唯一活跃的add-on是Adobe SVG Viewer 3.0。
两台机器都在使用IE7,并且都在使用相同的“数据集”。
这里可能存在的问题是什么?
谢谢!
发布于 2009-08-04 09:10:31
客户的计算机安装了Visual Studio 2005。
如本文所述,Adobe SVG Viewer和Visual Studio2005相互讨厌。http://support.microsoft.com/kb/916442
我们像这样嵌入SVG图表:
<embed src="PaintSVG?id=12345" type="image/svg+xml"></embed>安装了VS2005后,它会“将应用程序/ XML类型与.aspx文件扩展名关联起来”,因此现在IE认为您正在嵌入一个"aspx“文件,当它发现这个"aspx”文件是一个XML文档时,它就会尝试这样加载它(这就解释了它为什么要求使用MSXML3 ActiveX控件)。
作为一种解决办法,我们需要通过在URL末尾添加以下参数来“欺骗”IE,让它知道我们实际上是在嵌入SVG文件:
&Dummy=SVG-VS2005-WorkAround.svg如下所示:
<embed src="PaintSVG?id=12345&Dummy=SVG-VS2005-WorkAround.svg" type="image/svg+xml"></embed>发布于 2009-08-03 08:03:03
从XP开始,所有的OSes都内置了Msxml3。然而,有时你可能需要更高版本的Sp10 (比如Vista附带的Vista)。您可以下载的最大SP是SP7。所有其他内容只能通过Windows Update获得。
您可以使用Chloe:http://www.microsoft.com/downloads/details.aspx?familyid=28494391-052B-42FF-9674-F752BDCA9582&displaylang=en提供的链接来获取MSXML3。
据我所知,MSXML 6不足以满足需要MSXML 3的应用程序。
你也可以使用依赖遍历( (available here)来检查应用程序ActiveX需要什么dll。
发布于 2009-08-03 07:54:05
这只是我的直觉,但请尝试安装此程序
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
您可能会在“控制面板”中的“添加/删除程序”对话框中找到已安装或未安装的程序。
https://stackoverflow.com/questions/1221096
复制相似问题