【发布时间】: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
提前致谢。
【问题讨论】:
-
您是否尝试在注册表中搜索
MSXML2.ServerXMLHTTP.4.0?如果有,您可以使用其 CLS Id[msdn.microsoft.com/en-us/library/windows/desktop/… 创建。例如:sanirimbuyok.blogspot.com.tr/2015/04/…
标签: com vbscript windows-server-2008-r2 msxml4