【问题标题】:Problems with 32-bit ActiveX DLL on 64-bit OS64 位操作系统上的 32 位 ActiveX DLL 问题
【发布时间】: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


【解决方案1】:

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

【讨论】:

  • 如上所述,这就是我让 VB 脚本工作的原因。不幸的是,一旦我尝试了该网站,我的问题已经通过我为使其正常工作而采取的一个或多个不同步骤得到解决,所以我不确定根本问题/解决方案是什么。如果我弄明白了,我会更新原来的帖子。再次感谢 vcsjones 的帮助。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-05
    • 2011-12-18
    • 1970-01-01
    • 2013-08-29
    • 2012-03-16
    • 2015-09-26
    • 2011-07-07
    相关资源
    最近更新 更多