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

64位操作系统上的32位ActiveX DLL存在问题,dll,vb6,asp-classic,64-bit,windows-server-2008,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\

我正在尝试将分级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位应用程序,但这也没有任何帮助(当然,如果我无法让它使用w/VBS文件,这两种方式都不会有任何区别)


非常感谢您的帮助。

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

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


除非设置了32位DLL,否则64位机器上的IIS7将不会使用32位DLL。

请确保使用32位WScript测试VB脚本。双击它将使用64位。谢谢,vcsjones。实际上,我使用的是64位版本,一旦我切换到32位,这就行了。于是我又尝试了一次这个网站,奇怪的是它也起了作用。因此,我在尝试让VB脚本工作时做了一些事情,修复了IIS问题。可惜我不知道那是什么。谢谢你的帮助。如果你不在乎,把这个作为答案,我会记下来,因为这有助于解决我的问题。嗯,只要它能工作:-)如上所述,这就是促使我让VB脚本工作的原因。不幸的是,一旦我尝试了这个网站,我的问题已经通过我采取的一个或多个步骤得到了解决,所以我不确定根本问题/解决方案是什么。如果我能弄明白,我会更新原来的帖子。再次感谢你的帮助。