2012-06-10 30 views
3

我有一個asp.net的web應用程序,並且我在解決方案文件中添加了一些相關的類項目。當我運行Web應用程序時,我想打破並逐步瀏覽類中的代碼(當引用類時)。在asp.net中調試一個類

我沒有收到錯誤消息。在課程項目中的代碼只是不踢英寸

我已經搜查和閱讀這篇文章Debugging a Class Library但沒有運氣。

我該如何得到這個工作?

+1

您是否嘗試過打破類被調用之前,和然後點擊*進入*? – McGarnagle

+0

y ....也試過了 – LearningCSharp

+0

IIS或Cassini? –

回答

0

您確定您的web.config文件中設置了<compilation debug="true"/>嗎?與應用程序的其餘部分是否在同一個程序集中?

編輯:我可以建議的唯一的其他事情是停止IIS和/或VS開發服務器的所有實例,清理項目,重建,並給它另一個鏡頭。還要確保只有一個web.config,並且您沒有針對Web.Release.config或其他版本運行。

+0

是的我在web.config中設置正確 – LearningCSharp

+0

對你的第二個問題也是 – LearningCSharp

0

您可以嘗試停止ASP.NET進程嗎?當asp.net服務仍在運行時,我通常會遇到這個問題,並且我編譯(通過asp.net服務,我的意思是出現在計算機時鐘附近的圖標)。嘗試關閉它,重新編譯,然後運行。

+0

我已經停止了服務;我已關閉並重新啓動vs2010,我也重新啓動了機器....沒有運氣 – LearningCSharp

0

這有時會發生。檢查調試>模塊,看看是否有你的DLL加載。看來VS調試器沒有.pdb文件可用。清除.NET文件夾中的臨時ASP.NET文件,清理/重建並再次嘗試調試。

另外不要忘記以管理員身份運行VS。嘗試附加到進程而不是F5。

+0

如何「附加到進程」?我的意思是我知道在菜單中找到那個項目..但是我怎麼知道選擇哪個過程?順便說一句......我正在使用IIS – LearningCSharp

+0

在「附加到進程」中有列ID,其中包含ProcessID。運行TaskManager並在Command欄中可以看到你的AppPool的名稱和它的ProcessID。 –

0

你可以在你的代碼中調用這個函數,調試器會彈出

System.Diagnostics.Debugger.Launch();

替代,你可以撥打Debug.Fail("Stop me to see what next");

+0

不確定我明白你的意思是「用這個函數調用你的代碼」。你能解釋一下嗎? – LearningCSharp

+0

@LearningCSharp在您希望中斷的行並啓動調試器,放置此代碼。當你的函數運行併到達這一行時,調試器將彈出。 – Aristos

+1

@LearningCSharp如果你的程序到達了這一行,並且調試器沒有彈出,那麼你可以使用ether = debug = on來編譯它,你需要使用iis-admin重新啓動iis。 – Aristos