我们有某些.NET 1.1应用程序正在带有IE7的企业XP计算机上使用来自MSXML4.dll的基于MSXML DOCM的javascript调用(即FreeThreadedDOM,XMLHTTP,XSLT)。当我们使用IE9在新的Windows 7计算机上访问这些应用程序时,JavaScript在下面的每一行中均错误为“自动化服务器无法创建对象”。

var _xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.4.0");
var _freeThreadedDOM = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.4.0");
var _xsltTest = new ActiveXObject("Msxml2.XSLTemplate.4.0");
var _domTest = new ActiveXObject("Msxml2.DOMDocument.4.0");


因此,我们发现IE9 ActiveX设置仅提供MXSML3和MSXML6 API,这是Microsoft推荐的建议(3是因为它得到广泛的支持和高度支持,而6是因为它是最没有错误和最轻量的MSXML dll)。

现在,我们面临降级到3或升级到6的困境。

我想知道是否有人知道执行MSXML升级或降级是否安全,并且对MSXML3或6提供的功能(例如XPATH解析,XML中的特殊字符,XSLT Transformation,ASYCN HTTP)是否有影响?在javascript等中。这与MSXML4有很大不同吗?

任何投入都将赢得投票! :-)

最佳答案

我在不同的(VBA)解决方案中使用MSXML,最近遇到了相同的问题。我们的IT部门开始从某些计算机上擦除MSXML4。。。不确定它们的过程的哪一部分正在擦除它,但这不是问题。

我决定升级到MSXML6,因为。


由IT控制的环境,其新映像具有MSXML6
我不打算以任何方式支持较旧的配置
我没有依赖较早(现在不支持)功能的代码
MSXML6已安装在现有设备上
MSXML6更符合最终的XML规范
MSXML6还支持本机64位环境


除非您需要重构代码库的太大部分(因为您将使用旧功能),否则我认为降级而不是升级的理由不多。

我不能绝对地说这样做是否安全,但我想值得一试。

最好的问候和愉快的迁移。
雷蒙德

09-08 08:42