簡體   English   中英

后面代碼中的斷點未命中

[英]breakpoints in code behind not hit

我猜是常見問題,但到目前為止還沒有解決方案:

我的斷點(asp.net 2.0)在“后端”程序集中得到很好的命中,但在后面的代碼中卻沒有。

我什至可以看到 <% Response.CacheControl="no-cache"; %> 行在我的 asp.net 主文件中被擊中,但仍然不是后面的代碼。

我使用的是 VS 2005,Windows 7 32 位。 知道我還能檢查什么嗎?

如果您的代碼文件比正在運行的編譯版本更新(在 Web 服務器上,無論是 IIS 還是開發服務器),將不會命中斷點(紅色圓圈將是空心的)。

嘗試進行清理/重建,看看是否有效。

編輯:

我剛剛注意到你上一條評論中的一些內容; 你說你要附加到 asp.net 進程。 您要附加到哪個進程? 它應該是 w3wp.exe。

我的問題最終是我為該項目創建了一個新配置,但沒有為其設置項目中的任何調試屬性。 所以這就是我必須做的:

  1. 右鍵單擊 Web 項目並選擇Properties
  2. 轉到“構建”選項卡。
  3. 單擊高級
  4. 在對話框中,確保在輸出部分,調試信息沒有設置為none。

我猜加載頁面的符號有問題,因此斷點沒有命中,

嘗試這個

1 - 在 Visual Studio 中調試時,單擊調試 > Windows > 模塊。 IDE 將停靠一個模塊窗口,顯示已為您的項目加載的所有模塊。

2 - 查找項目的 DLL,並檢查它的符號狀態。

3 - 如果它說符號加載,那么你是金色的。 如果它顯示類似無法找到或打開 PDB 文件的內容,請右鍵單擊您的模塊,選擇加載符號,然后瀏覽到 PDB 的路徑。

4 - 我發現有時需要

停止調試器

關閉 IDE

關閉托管應用程序

核對 obj 和 bin 文件夾

重新啟動IDE

重建項目

再次通過模塊窗口

瀏覽到 PDB 文件的位置后,符號狀態應更改為已加載符號,現在您應該能夠在代碼行中設置和捕獲斷點。

希望能幫助到你 !

答案來源

啊。 在我的例子中,我在 IIS 中映射了正確的文件夾,但應用程序是在 IIS Express 上設置的。

因此,當我訪問 URL 時加載了正確的程序集,但該應用程序附加到從未獲得任何點擊的 IIS Express 版本。

就我而言,我從 Git 更新了我的存儲庫,並且項目從本地 IIS 更改為 IIS Express(項目 > 屬性 > Web 選項卡)。 這以某種方式弄亂了我的配置,我無法調試。

通過將其設置為“啟動項目”來解決我的問題

解決方案資源管理器 -> 右鍵單擊​​項目 -> 設置為啟動項目

或者

菜單欄 -> PROJECT 或 WEBSITE -> 設置為啟動項目

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM