我正在尝试在 Windows Server 2008 R2 上运行使用 7 年历史的第 3 方 32 位 COM 组件的 VBScript 脚本,并使用命令行 32 位脚本主机 SysWOW64\cscript.exe。当我在类上调用 CreateObject 时,它似乎是成功的,但是当我第一次尝试在对象上使用属性或方法(我尝试过几种不同的方法)时,它给了我“灾难性的失败”。我与 SysWOW64\wscript.exe 有相同的结果,当然,除了我的错误消息出现在 msgbox 中而不是命令行窗口中。
我认为这与 64 位脚本主机有关,原因如下:
- 等效的 Classic ASP 脚本调用相同的组件并使用 95% 的相同代码,在同一台服务器上正常工作,IIS 配置为支持 32 位 COM。
- 相同的 VBScript 在 32 位 Windows XP 机器和 32 位 Windows Server 2003 机器上正常工作。
- 该组件在我的 64 位 Windows 7 机器上以完全相同的方式失败。
我在谷歌上搜索这个问题的解决方案,大部分都发现了很多不同的问题,这些问题通过将 COM 组件放入 Visual Studio 的工具栏中得到了解决。显然,该解决方案不适用于此处。
我的问题是:
- 是否存在始终导致 Windows 脚本主机调用 COM 组件的“灾难性故障”背后的核心问题?
- 在配置管理单元或注册表中是否有一个地方,我需要进行类似于我必须对 IIS 应用程序池进行更改以“启用 32 位应用程序”的更改?
- Server 2008 R2 事件查看器中是否有我应该查看的一般位置,以查看是否有更多关于故障的详细信息,以防它被证明是特定于该组件的?
提前致谢。