我正在尋找比我們目前需要處理的更好的解決方案意外的生產錯誤,而無需重新發明輪子。在.NET窗口應用程序中收集/報告意外錯誤的最佳方法是什麼?
我們的更多產品是安裝在遠程站點的WinForm和WPF應用程序。不可避免的意外錯誤發生,從NullReferenceExceptions到'一般網絡錯誤'。從程序員錯誤到環境問題。
目前,所有這些未處理的異常使用log4net的記錄,然後通過電子郵件發送給我們的分析。但是,我們發現有時這些錯誤「報告」包含的信息太少,無法識別問題。
在這些報告中,我們需要的信息,如:
- 應用程序名稱
- 應用程序版本
- 工作站
- 也許一個屏幕截圖
- 異常詳細
- 操作系統
- 可用RAM
- 正在運行的進程
- 等等...
我真的不希望通過從頭開發這個重新發明輪子。需要的組件:(如上所述細節)
- 錯誤收集
- 錯誤「發件人」(排隊所需如果DB或互聯網是不可用)
- 錯誤數據庫
- 分析這些錯誤報告。例如。在下午4點到5點之間發生10次最常見的錯誤或超時。版本x和y之間的錯誤如何比較?
注: 我們看了SmartAssembly作爲一種可能的解決方案,但雖然接近它並沒有完全滿足我們的需要,我希望聽聽其他開發人員做的,如果一些替代品存在。
編輯:感謝您的回答。也許在我原來的問題中我並不清楚,問題不在於如何捕捉所有未知的異常,而是如何處理它們並在其周圍創建報告引擎(分析)。
嗨,我感興趣的是什麼是意味着SmartAssembly並沒有完全滿足您的需求? – 2010-06-24 08:52:58