经典的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
...
它在该行失败。
听起来就像您的网站运行的应用程序池配置为64位模式(默认)。
它切换到32位由上水池右击并选择Advanced Settings
:
设置Enable 32-Bit Applications
到True
。
您可能还需要配置管理管道模式并将其设置为经典模式,但并非所有的传统ASP应用都以集成模式运行。
如果您只需要调试组件,那么编写使用此COM组件的COM应用程序可能会更容易。特别是如果你有组件的来源,你可以从你的vb6组件项目启动你的测试应用程序作为你的调试应用程序。
既然是VB6,尽管你可能需要设置一个XP虚拟机才能运行visual studio 6.0(我从来没有能够在windows 7上运行6.0)。或者将组件升级到visual studio 2010.
这很有趣,你把它带出来,因为我正在考虑如果我无法通过网络获得它,那么作为替代方案。 – 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位组件。
确保您的开发计算机上已注册COM组件。 – 2011-04-13 16:54:22
我做了regsrv32 ... – webdad3 2011-04-13 17:04:52