ASP.NET Core Debugging Breakpoint not hit?
同事反應,ASP.NET Core 專案無法正常進行中斷點(breakpoint)偵錯。簽出專案,下中斷點偵錯取得以下資訊:
The breakpoint will not currently be hit. No symbols have been loaded for tis document.
如果這時你下關鍵字「asp.net core breakpoint」去搜尋,在第一筆你就能找到解決方案。
他的解決方案是叫你「關閉:Enable Just My Code」與「開啟:Microsoft symbols Server」。
如果這樣就解決了,那我還要寫這篇嗎?
但這樣調整之後,造成另一個問題,只有這個專案使用這樣的設定是正常的,其他專案反而不正常。也就是說,只要與這個 ASP.NET Core 專案進行切換,就必須重新調整 debugging 設置。在 ASP.NET Core 怎麼可能是這種開發模式?不被罵死才怪。
最簡單方式,重開一個乾淨的 ASP.NET Core 專案,寫幾行 Code 與下中斷點測試。在未調整 debugging 設置下,疑,在我的電腦是正常的。這確認了非 Visual Studio 與 Debugging 設置造成 ASP.NET Core 無法進行中斷點。
回想過去處理過不少次中斷點失效的問題,其中除了 Debugging 設置不知什麼原因跑掉了之外,最常碰到的是開發者不小心把偵錯模式由 Debug 組態模式 設成 Release 組態模式 模式。
從這個方向去查,Bing Go:
Debug 組態模式有個不應該勾選的Optimize code被勾選了。這個選項被勾選,等同於 Release 組態模式。
進行 .csproj 程式碼比對就更明顯了。
這次經驗也學習到,Visual Studio 介面上的組態模式不等於實際的組態模式。寫那麼久的 .NET,我從沒有調過 Visual Studio 的 Debugging 設置。下次,如果中斷點是失效的,除了確認 Enable Just My Code 是否被取消了(取消那篇是錯誤教學),還有組態模式及 Optimize Code 設置。
常常遇到有人手癢去調專案屬性,玩到最後忘記調回來XD
回覆刪除哈哈
刪除看你要解決問題,還是解決人。