1

我们有某些 .NET 1.1 应用程序在我们的企业 XP 机器上使用 IE7 上的 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 转换、ASYCN HTTP)是否有任何影响在 javascript 等中。这与 MSXML4 有很大不同吗?

任何投入都会获得支持!:-)

4

1 回答 1

2

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

我决定升级到 MSXML6 是因为。

  • 它和 IT 控制的环境和他们的新形象有 MSXML6
  • 我不打算以任何方式支持旧配置
  • 我没有依赖旧(现在不受支持)功能的代码
  • MSXML6 已安装在现有设备上
  • MSXML6 更符合最终的 XML 规范
  • MSXML6 还支持本机 64 位环境

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

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

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

于 2013-02-22T17:56:32.873 回答