2011-04-13 117 views
2

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

回答

7

聽起來就像您的網站運行的應用程序池配置爲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

1

如果您只需要調試組件,那麼編寫使用此COM組件的COM應用程序可能會更容易。特別是如果你有組件的來源,你可以從你的vb6組件項目啓動你的測試應用程序作爲你的調試應用程序。

既然是VB6,儘管你可能需要設置一個XP虛擬機才能運行visual studio 6.0(我從來沒有能夠在windows 7上運行6.0)。或者將組件升級到visual studio 2010.

+0

這很有趣,你把它帶出來,因爲我正在考慮如果我無法通過網絡獲得它,那麼作爲替代方案。 – webdad3 2011-04-13 16:32:44

0

如果要在64位環境中運行32位組件,可以這樣做。如上所述,設置IIS允許運行32位組件的麻煩是,你最終會讓所有iis運行32位 - 如果它是一個web服務器,則意味着你正在運行的主要應用程序是32位,因此降低了速度優勢64位機器。

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