2009-12-08 95 views
0

我有一個運行在IIS 7(集成模式)中的經典ASP應用程序,需要調用已正確註冊爲COM的.NET庫。Classic.ASP通過COM調用.NET組件

一切似乎工作發現,但我不能調試圖書館,即使我把它放在幾個斷點。 VS調試器似乎在不中斷的情況下跨過。

這是我的ASP代碼:

Dim sso: Set sso = Server.CreateObject("SecurityPlatform.ClassicASP_SSO") 
sso.Initialize() 

我可以步調試那些行,但似乎不可能踏進初始化()。

任何線索?

回答

1

我不知道你爲什麼不能步,但這裏是一個把戲:

投入System.Diagnostics.Debugger.Break方法的調用託管代碼中。一旦執行命中此行,將會彈出一個對話框讓您將VS附加到它。

0

如果這是企業服務/ COM + compoent,則可能需要手動將調試器附加到運行COM組件的進程。運行「進程外」的COM +組件不會默認附加調試器。

上次我做了這個過程,我們不得不附加到最後創建的dllhost(通常最高的進程ID)。你可以通過visual studio的調試菜單來做到這一點。

0

如果您正在嘗試通過COM +調用Managed .NET代碼,請確保將Debugger連接到dllhost.exe而不是w3p.exe(或者任何正在運行您的Web應用程序的進程。 。取決於你的IIS版本)。如果你正在加緊這些行,那麼你就已經被安裝到用於調試腳本的進程

COM +代碼不與Web服務器進程執行...

0

。但是,要調試.NET組件中的代碼,需要將其附加到調試「託管代碼」的過程中。您無法從腳本進入受管組件,因爲您無法同時調試腳本和受管代碼。

當您附加到w3wp過程時,請確保「附加到:」框中包含「託管代碼」。現在你的斷點可以正常工作,但你將無法執行腳本代碼。