64位操作系统上的32位ActiveX DLL问题

时间:2011-01-05 02:36:05

标签: dll vb6 asp-classic 64-bit windows-server-2008

我正在尝试将分类ASP站点移动到64位Windows 2008服务器。我现在遇到的问题(如果/当我超过这个时可能有其他人)是该网站依赖于旧的VB6 DLL(32位),而我得到了臭名昭着的“ActiveX组件无法创建对象”错误。

我尝试通过尝试使用简单的VBS脚本文件来使IIS7脱离等式,这给了我同样的东西。

这个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文件,这不会有任何影响。)

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

确保使用32位WScript来测试VB脚本。双击它将使用64位 - 这将有助于诊断您的问题。

答案 1 :(得分:2)

在驱动IIS7网站的应用程序池中,选择“高级设置”并在顶部附近,将启用32位应用程序设置为True。

64位计算机上的IIS7不会使用32位DLL,除非已设置。