我们有一个大型代码库(主要是 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
提前致谢。