ASP.NET Core Debugging Breakpoint not hit?

ASP.NET Core Debugging Breakpoint not hit?

同事反應,ASP.NET Core 專案無法正常進行中斷點(breakpoint)偵錯。簽出專案,下中斷點偵錯取得以下資訊:

breakpoint not hit

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:

build Optimize Code

Debug 組態模式有個不應該勾選的Optimize code被勾選了。這個選項被勾選,等同於 Release 組態模式。

csproj Optimize setting

進行 .csproj 程式碼比對就更明顯了。

這次經驗也學習到,Visual Studio 介面上的組態模式不等於實際的組態模式。寫那麼久的 .NET,我從沒有調過 Visual Studio 的 Debugging 設置。下次,如果中斷點是失效的,除了確認 Enable Just My Code 是否被取消了(取消那篇是錯誤教學),還有組態模式Optimize Code 設置。

2 則留言:

  1. 常常遇到有人手癢去調專案屬性,玩到最後忘記調回來XD

    回覆刪除
    回覆
    1. 哈哈
      看你要解決問題,還是解決人。

      刪除

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。