2011-01-05 178 views
3

我试图将一个分类ASP站点移动到64位Windows 2008服务器。我现在遇到的问题(如果/当我经历这个问题时可能有其他问题)是该站点依赖于旧的VB6 DLL(32位),并且我得到臭名昭着的“ActiveX组件无法创建对象”错误。64位操作系统上的32位ActiveX DLL的问题

我试图通过试图让它与一个简单的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位应用程序,这也没有帮助(当然,如果我不能使用WBS文件工作,这两种方式都没有什么不同)。

任何帮助将非常感激。

+1

确保您使用32位WScript来测试您的VB脚本。双击它将使用64位。 – vcsjones 2011-01-05 02:52:39

+0

谢谢,vcsjones。我实际上使用的是64位版本,一旦我切换到32位,那就工作了。于是我再次尝试了网站,奇怪的是它也起作用了。所以当我尝试让VB脚本运行时,我做了一些事情,解决了IIS问题。太糟糕了,我不知道它是什么。谢谢你的帮助。如果你不在乎,把这个作为答案,我会标记,因为它有助于解决我的情况。 – 2011-01-05 03:05:42

+0

呵呵。那么,只要它工作:-) – vcsjones 2011-01-05 03:08:26

回答

2

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

+0

如上所述,这是让我得到的VB脚本工作。不幸的是,一旦我尝试了这个网站,我的问题就已经被我采取的一个或多个步骤所修复,因此我不确定根本问题/解决方案是什么。如果我知道了,我会更新原文。再次感谢vcsjones,感谢您的帮助。 – 2011-01-05 18:53:47

2

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

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

相关问题