簡體   English   中英

經典的ASP和COM調試

[英]Classic ASP and COM debugging

我繼承了一個經典的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

...

它失敗了。

聽起來您的站點運行的應用程序池配置為64位模式(默認值)。

右鍵單擊池並選擇“ Advanced Settings ,將其切換為32位:

在此輸入圖像描述

Enable 32-Bit ApplicationsTrue

您可能還需要配置托管管道模式並將其設置為經典,並非所有經典ASP應用程序都在集成模式下運行。

如果您只需要調試組件,則可以更輕松地編寫使用此COM組件的COM應用程序。 特別是如果您擁有組件的源代碼,則可以從vb6組件項目中啟動測試應用程序作為調試應用程序。

雖然它是VB6,但你可能必須設置一個XP虛擬機才能運行visual studio 6.0(我從來沒能在6.0上運行)。 或者將組件升級到visual studio 2010。

如果要在64位環境中運行32位組件,則可以執行此操作。 設置IIS以允許運行32位組件的問題是你最終讓所有iis運行32位 - 如果它是一個網絡服務器意味着你運行的主應用程序是32位,所以降低了速度優勢64位機器。

要在64位IIS中運行32位組件,需要將其放在組件服務中。 開始 - >運行 - >“comexp.msc”運行組件服務。 然后向下展開樹直到找到COM + Applications,並創建一個新的空應用程序(所有默認設置都是如此)。 然后展開該應用程序並右鍵單擊組件,然后單擊“新建”>組件。 安裝新組件並選擇DLL。 這應該允許64位組件只使用32位組件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM