【问题标题】:MSXML4.0 on Windows Server 2008r2 - Cannot create object MSXML2.ServerXMLHTTP.4.0Windows Server 2008r2 上的 MSXML4.0 - 无法创建对象 MSXML2.ServerXMLHTTP.4.0
【发布时间】:2013-05-04 08:32:59
【问题描述】:

我们有一个大型代码库(主要是 vbscript),我正在将其从 Windows 2000(32 位)服务器迁移到 Windows 2008 R2(64 位)。此代码的很大一部分依赖于 MSXML 4.0 解析器,不幸的是,我们没有使用版本 3 或 6 的选项(原因超出了此问题的范围)。

我已经按照http://www.microsoft.com/en-us/download/details.aspx?id=15697 的说明安装了 4.0 版的 MSXML,并验证它安装正确。 "msxml4.dll" 存在于 "c:\windows\syswow64" 中,并且注册表中有一个键 HKEY_CLASSES_ROOT\Msxml2.ServerXMLHTTP.4.0 。我什至对 dll 运行了 regsrv32.exe,它说它已正确注册。

但是,当尝试这样做时

    Set objAsp = CreateObject("MSXML2.ServerXMLHTTP.4.0")

它失败了:

    Script: C:\test.vbs
    Line:   1
    Char:   1
    Error:  ActiveX component can't create object: 'MSXML2.ServerXMLHTTP.4.0'
    Code:   800A01AD
    Source:     Microsoft VBScript runtime error

在 powershell 中:

     $objAsp = New-Object -ComObject MSXML2.ServerXMLHTTP.4.0

它失败了:

    New-Object : Retrieving the COM class factory for component with CLSID {88D969C6-
    F192-11D4-A65F-0040963251E5} failed due to the following error: 80040154 Class not   
    registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
    At line:1 char:11
    + $objAsp = New-Object -ComObject MSXML2.ServerXMLHTTP.4.0
    +           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (:) [New-Object], COMException
    + FullyQualifiedErrorId :  
    NoCOMClassIdentified,Microsoft.PowerShell.Commands.NewObjectCommand

提前致谢。

【问题讨论】:

标签: com vbscript windows-server-2008-r2 msxml4


【解决方案1】:

我认为您默认运行的是 64 位版本的 CScript 和 Powershell,但 MSXML 是 32 位组件。

这里有一个链接解释了如何在 64 位操作系统上启动 32 位版本的 Powershell:Starting the 32-Bit Version of Windows PowerShell

【讨论】:

  • 谢谢,我试试看!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-16
  • 1970-01-01
  • 1970-01-01
  • 2017-04-22
  • 1970-01-01
  • 2012-04-10
  • 1970-01-01
相关资源
最近更新 更多