我想使用ASP.net健康監測從asmx網絡服務記錄未處理的異常。我在web.config中啓用了健康狀況監控,但它沒有記錄任何內容。健康監測與asmx網絡服務一起工作嗎?我搜索了一下,看起來其他人都問過同樣的問題,但從來沒有得到明確的答案。ASP.net健康監測與asmx網絡服務工作
回答
請不要發佈回覆,除非它回答了被問到的問題。除了這個問題之外,一半的答案會讓讀者感到困惑。健康監控與「真正未處理」的ASP.NET異常或Application_Error事件無關。
答案是否定的。我已經深入瞭解了這一點,出於某種原因,Web方法中引發的異常從未將其提供給健康監視提供程序。它看起來像你必須趕上他們,並處理好自己。
它不會工作,因爲未處理的異常不在任何類型的try/catch內運行。因此,它將無法記錄。看看這篇博客文章: http://blogs.msdn.com/tom/archive/2007/12/04/unhandled-exceptions-causing-asp-net-to-crash-in-net-2-0.aspx
正常解釋未處理的異常和湯姆指的是有區別的。什麼湯姆指的是真正的未處理的異常,這將殺死你的w3wp.exe進程(它有一個機會來記錄它之前),因爲我已經在博客這裏: http://www.improve.dk/blog/2008/04/07/spawning-threads-in-aspnet-can-be-dangerous
正常未處理的異常會導致發生異常並向用戶/被調用者顯示錯誤頁面。它不會崩潰你的w3wp.exe進程。這些例外情況應該由健康狀況監測提供。
CALM產品應該在這種情況下工作;讓我知道如果它不 - 我寫它;-)
在Global.asax中,如果您使用由Visual Studio自動生成的一個,您可以將代碼添加到Application_Error方法來處理異常和日誌他們以你選擇的任何方式。您也可以重寫Init方法併爲該類的Error事件添加一個事件處理程序。
無論哪種情況,您只會得到一個無益的vanilla EventArgs對象,但是您可以使用HttpContext.Current.Server.GetLastError()來獲取發生的異常。
正如另一張海報中提到的,這可能無法捕獲異步運行委託,自己啓動的線程或使用Page.RegisterAsyncTask()創建的異步頁面任務引發的異常。在這些上,您總是需要確保實現具有異常後端停止,以便可以捕獲異常並且IIS工作進程不會中止。
- 1. Tomcat網絡健康監測
- 2. WCF服務健康監測
- 3. 健康監測
- 4. 健康監測與WCF
- 5. mvc3健康監測
- 6. WCF健康監測類似於ASP.NET
- 7. SSRS和健康監測
- 8. Azure資源健康監測
- 9. 內部部署服務健康監控
- 10. WCF Web服務和本機ASP.NET健康監視
- 11. 在asp.net中健康監控的混亂
- 12. 健康監測應用程序
- 13. ASMX網絡服務調試
- 14. 瞭解ASP.NET健康狀況監測中的心跳
- 15. TCP健康監視器
- 16. 在asp.net健康監控中製作問題
- 17. 通過腳本監控weblogic服務器的健康狀況
- 18. 監控:健康檢查失敗時重新啓動服務器
- 19. Azure雲服務工作者角色崩潰和不健康
- 20. 使用nagios監控jenkins工作健康GUI
- 21. 監控WCF網絡服務
- 22. ASMX網絡服務和HTTP GET
- 23. 如何發佈ASMX網絡服務
- 24. 無法調試asmx網絡服務
- 25. 描述ASMX網絡服務WebMethod參數
- 26. 網絡監測
- 27. 生成SQL服務器健康報告
- 28. Webglogic何時更改服務器健康
- 29. Azure - 此服務不健康.NET後端
- 30. Azure中的不健康雲服務
你的產品可能工作,但你的鏈接不:) :) – frankadelic 2010-04-30 16:24:18
@frankadelic:對不起,我們正在重做網站和改變託管服務提供商的過程中,一切都還在;給我發一封電子郵件(nov8r.com上的steven dot lowe),如果你想嘗試一下,我會發給你安裝程序 – 2010-05-03 11:28:28