我正在尝试将分类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文件,这不会有任何影响。)
非常感谢任何帮助。
答案 0 :(得分:2)
确保使用32位WScript来测试VB脚本。双击它将使用64位 - 这将有助于诊断您的问题。
答案 1 :(得分:2)
在驱动IIS7网站的应用程序池中,选择“高级设置”并在顶部附近,将启用32位应用程序设置为True。
64位计算机上的IIS7不会使用32位DLL,除非已设置。