回答
也許你應該嘗試:
- 停止開發服務器在任務欄中
- 從釋放開關配置調試
是的,這是正常的。
Application_Start()
由IIS處理。
但是所有其他方法,例如Session_Start
以及除Application_Start()
之外的所有其他方法都可以正常調試。
Application_Start()
每個AppDomain被調用一次。如果你不打你的斷點,這意味着已經創建的AppDomain,所以做到以下幾點:
- 在你的快速啓動欄,沒有爲VS Web服務器的圖標(其在其中一個說: 「本地主機某個端口」)。右鍵單擊並選擇「停止」或「關閉」。這應該殺死AppDomain。
- 如果您使用的是IIS,則需要手動重新啓動您的站點。
- 或者,修改web config或Global.asax文件通常足以重新啓動AppDomain。
- 重新啓動您的調試,您應該現在打你的斷點。
檢查你的web應用程序是在調試模式(<compilation debug="true">
在web.config中)。
如果您使用由VS啓動的開發人員的IIS,只需重新啓動它或重建應用程序即可。
如果你在正常的IIS,你有兩個選擇:
- 對於Web站點配置了發展的文件夾(你VS網絡部署項目)的工作,你只需要重新啓動應用程序池集對於該網站並在第一次請求到達服務器之前開始調試(您可以在調試過程中始終重新啓動應用程序池)。
- 對於在另一個文件夾甚至遠程服務器上工作的網站,您必須附加到該過程。要做到這一點,您需要遠程調試器安裝在遠程機器上或您自己的(取決於Web服務器位置),並使用
Debug - Attach to process
菜單,輸入計算機名稱,然後選擇要調試的進程。它通常是以受管模式類型工作的w3wp.exe。
感謝您的答案。我通過VS使用IIS。 – mahdiahmadirad 2009-12-25 19:47:34
打破Application_Start()
的一個簡單方法是使用System.Diagnostics.Debugger
類。您可以通過插入System.Diagnostics.Debugger.Break()
來強制應用程序中斷,您希望調試器中斷。
void Application_Start(object sender, EventArgs e)
{
System.Diagnostics.Debugger.Break();
// ...
}
刪除global.asax
並添加一個新的。在我的解決方案中,有一個global.asax
和一個global.asax.cs
。
所有方法(Session_Start
,Application_Start
,...)都在bot文件中,但只有global.asax
中的方法已經被考慮。所以,cs中的斷點和代碼不會做任何事情。
只有在重新創建文件後,纔有適當的方法並且運行。
我遵循這裏的說明:http://rossnelson.blogspot.ca/2005/11/fixing-globalasax-in-aspnet-20.html。 基本上,刪除global.asax並添加一個全局應用程序類,它可以用一個代碼在文件後面重新創建asax,然後我可以進入該文件。我在IIS上運行,它工作正常。 – cbeuker 2012-08-28 18:01:14
另一種方法來接受System.Diagnostics.Debugger.Break();
將
void Application_Start(object sender, EventArgs e)
{
System.Diagnostics.Debugger.Launch();
//...
}
不應破壞代碼,並應甚至開始調試如果服務開始與不同的權限。
這很好我試過了,它也適用於我...謝謝 – 2015-10-16 16:42:35
不要指望通過按f5立即調用Application_Start()函數。 Application_Start()僅在第一次請求應用程序時被調用。 奇怪而真實。
如果所有的答案不工作的,請嘗試:
<compilation debug="true" ... />
在
web.config
。 ;)
- 1. 是否可以chrome調試iife javascript?
- 2. 是否可以調試Quartz.NET Windows服務?
- 3. 是否可以從Visual Studio調試QML?
- 4. ASIHTTPRequest是否可以重試?
- 5. Global.asax中的Application_OnStart是否可以使用緩存頁面?
- 6. 是否可以使用另一個程序集中的Global.asax?
- 7. 可調用(obj)是否嘗試調用?
- 8. 是否可以在Ruby on Rails中調試單元測試?
- 9. 是否可以從C#程序調用JIT調試器窗口?
- 10. 如何檢測請求是否是Global.asax中的回調?
- 11. 是否可以從測試類中調用私有函數QT
- 12. 是否可以調試基於NativeActivity的應用程序?
- 13. 是否可以在LLVM-vs2014的源代碼級進行調試?
- 14. 是否可以使用VS 2010遠程調試Windows 8?
- 15. 是否可以從非Linux系統遠程調試linux代碼?
- 16. 是否可以寫入Delphi調試器的擴展?
- 17. 是否可以使用bpython作爲完整的調試器?
- 18. 是否可以調試在運行時編譯的代碼?
- 19. 是否可以調試從Play下載的android應用程序?
- 20. 單元測試是否可以進行P/Invoke調用?
- 21. 是否可以在VS2008中調試VS2010 .NET 4.0項目?
- 22. 是否可以將調試器附加到k6腳本?
- 23. 單元測試WCF調用,是否有可能以及如何?
- 24. 是否可以調試PL/Java(理想情況下來自Eclipse)?
- 25. 是否可以使用KDevelop來調試ruby應用程序?
- 26. 是否可以使用Monotouch評估版的IDE調試器?
- 27. 是否可以調試外部的ant任務?
- 28. 是否可以在Symfony2中調試php代碼?
- 29. 是否可以在Flash Builder中調試flash cs4項目?
- 30. 是否可以調試Xamarin.Android綁定項目使用的Android庫?
奇數,這被標記爲答案,但有-2評級... – 2010-07-20 20:59:53
它有一個負評分,因爲它是錯誤的。說你需要進行調試(或者你沒有pdb文件)並且你需要在服務器啓動時捕獲服務器是正確的(因爲這是在代碼運行的時候),但是你不能附加到過程。你需要一個正在運行的進程來連接調試器,global.asax代碼在啓動的前幾個毫秒內運行,所以它幾乎是不可能的(沒有使用[正確答案])(https://stackoverflow.com/a/ 4809464/542251))附加到該過程,因爲它運行此代碼 – Liam 2018-02-28 11:53:24