经典的ASP和COM调试

经典的ASP和COM调试

问题描述:

我继承了一个经典的ASP项目和VB6组件(ActiveX .dll)。经典的ASP和COM调试

我希望能够通过在本地机器上运行它来调试此组件。

我有一个Windows 7家庭高级版(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对象。

我需要做些什么才能使其运行?

正如一个供参考:

在Global.asa我有以下几点:

<object runat="server" scope="session" id="ABC" progid="prjABC.clsABC"></object> 

然后在ASP我有以下电话:

if ABC.propertyName = True then 

...

它在该行失败。

+0

确保您的开发计算机上已注册COM组件。 – 2011-04-13 16:54:22

+0

我做了regsrv32 ... – webdad3 2011-04-13 17:04:52

听起来就像您的网站运行的应用程序池配置为64位模式(默认)。

它切换到32位由上水池右击并选择Advanced Settings

enter image description here

设置Enable 32-Bit ApplicationsTrue

您可能还需要配置管理管道模式并将其设置为经典模式,但并非所有的传统ASP应用都以集成模式运行。

+0

修复它。我将这两个设置都转换成了你的建议,所以我不知道哪一个实际上做了,或者两者都做了,但该网站现在正在我的本地机器上运行。对此信息向您表示感谢。几天后,我的头靠在墙上。再次感谢。 – webdad3 2011-04-14 16:43:36

+0

@jeff ----耶! – Kev 2011-04-14 17:35:07

如果您只需要调试组件,那么编写使用此COM组件的COM应用程序可能会更容易。特别是如果你有组件的来源,你可以从你的vb6组件项目启动你的测试应用程序作为你的调试应用程序。

既然是VB6,尽管你可能需要设置一个XP虚拟机才能运行visual studio 6.0(我从来没有能够在windows 7上运行6.0)。或者将组件升级到visual studio 2010.

+0

这很有趣,你把它带出来,因为我正在考虑如果我无法通过网络获得它,那么作为替代方案。 – webdad3 2011-04-13 16:32:44

如果要在64位环境中运行32位组件,可以这样做。如上所述,设置IIS允许运行32位组件的麻烦是,你最终会让所有iis运行32位 - 如果它是一个web服务器,则意味着你正在运行的主要应用程序是32位,因此降低了速度优势64位机器。

要在64位IIS中运行32位组件,您需要将它放在组件服务中。开始 - >运行 - >“comexp.msc”运行组件服务。然后,向下展开树,直到找到COM +应用程序,并创建一个新的空应用程序(所有默认设置均如此)。然后展开该应用程序并右键单击组件,然后单击“新建”>组件。安装新组件并选择DLL。这应该允许64位组件使用32位组件。