【发布时间】:2011-01-05 02:36:05
【问题描述】:
我正在尝试将分类 ASP 站点移动到 64 位 Windows 2008 服务器。我现在遇到的问题(如果/当我通过这个问题时可能还有其他问题)是该站点依赖于旧的 VB6 DLL(32 位),并且我得到了臭名昭著的“ActiveX 组件无法创建对象”错误。
我尝试让 IIS7 与一个简单的 VBS 脚本文件一起工作,从而将其排除在外,这也给了我同样的效果。
此 DLL 的唯一依赖项是 ADO 2.6,据我所知,Windows 2008 不支持且不需要它,因为 WDAC 已包含并已取代 MDAC。
我使用以下内容注册我的组件:
C:\Windows\SysWOW64\regsvr32.exe "C:\MyVb6Com.dll"
我检查了注册表,那里的一切看起来都是正确的。我的VBS文件也很简单:
CreateObject("MyVb6Com.Session")
它会立即抛出错误:
ActiveX component can't create object: 'MyVb6Com.Session'
在 IIS 端,我已经尝试更改应用程序池的设置以启用 32 位应用程序,但这也无济于事(当然,如果我无法使用 VBS 文件使其工作,这不会有任何区别)。
非常感谢任何帮助。
【问题讨论】:
-
确保您也使用 32 位 WScript 来测试您的 VB 脚本。双击它将使用 64 位。
-
谢谢,vcsjones。我实际上使用的是 64 位版本,一旦我切换到 32 位,就可以了。于是我再次尝试了这个网站,奇怪的是它也能正常工作。所以当我试图让 VB 脚本工作时,我做了一些事情,修复了 IIS 问题。太糟糕了,我不知道那是什么。谢谢你的帮助。如果您不关心,请将其作为答案,我会标记它,因为它有助于解决我的问题。
-
嗯。好吧,只要它有效:-)
标签: dll vb6 asp-classic 64-bit windows-server-2008