我继承了一个经典的ASP项目和一个随附的VB6组件(ActiveX .dll)。
我希望能够通过在我的机器上本地运行来调试该组件。
我有一台Windows 7 Home Premium(64位)笔记本电脑。
我已在本地设置IIS 7.5(生产正在运行IIS5),但是,当我浏览到该站点(本地)时,我得到:
Active Server Pages error '00000000'
Create object failed
?
An error occured while create object 'OBJECTNAME'
Microsoft VBScript runtime error '800a01ae'
Class does't support Automation: 'ID of object in global.asa
我不是服务器人,所以我没有很多设置IIS的经验。我想在本地设置这个项目,所以我可以使用调试器逐步完成COM对象。
我需要做些什么才能让它运行?
就像一个FYI:
在global.asa中,我有以下内容:
<object runat="server" scope="session" id="ABC" progid="prjABC.clsABC"></object>
然后在ASP中我有以下电话:
if ABC.propertyName = True then
...
它失败了。
答案 0 :(得分:8)
听起来您的网站运行的应用程序池配置为64位模式(默认设置)。
右键单击池并选择Advanced Settings
:
将Enable 32-Bit Applications
设为True
。
您可能还想配置托管管道模式并将其设置为经典,并非所有经典ASP应用程序都能在集成模式下运行。
答案 1 :(得分:1)
如果您只需要调试组件,则可以更轻松地编写使用此COM组件的COM应用程序。特别是如果您拥有组件的源代码,则可以从vb6组件项目中启动测试应用程序作为调试应用程序。
因为它是VB6,但你可能需要设置一个XP虚拟机才能运行visual studio 6.0(我从来没能在6.0上运行6.0)。或者将组件升级到visual studio 2010.
答案 2 :(得分:0)
如果要在64位环境中运行32位组件,则可以执行此操作。设置IIS以允许运行32位组件的问题是你最终让所有iis运行32位 - 如果它是一个网络服务器意味着你正在运行的主应用程序是32位,所以降低了速度优势64位机器。
要在64位IIS中运行32位组件,您需要将其放在组件服务中。开始 - &gt;运行 - &gt;“comexp.msc”运行组件服务。然后向下展开树直到找到COM + Applications,并创建一个新的空应用程序(所有默认设置都是如此)。然后展开该应用程序并右键单击组件,然后单击“new”&gt;组件。安装新组件并选择DLL。这应该允许64位组件只使用32位组件。