[英]Handling rude application aborts in .NET
我知道即使問這個問題,我也開始自己開火了,但我想我會看看StackOverflow是否有解決我遇到的問題的方法......
我有一個C#應用程序在客戶端站點失敗,我無法在本地重現。 不幸的是,我很難(不可能)獲得任何有助於隔離問題根源的信息。
我有一個相當廣泛的錯誤監控框架,它在所有常見的地方監視未處理的異常:
在我可以訪問它們的地方記錄詳細信息。
這在過去非常有用,可以識別生產代碼中的問題,但是沒有向我提供有關當前一系列問題的任何信息。
我最好的猜測是,核心問題是“粗魯”異常類型之一(線程中止,內存不足,堆棧溢出,訪問沖突等),這些異常類型正在逐步升級為嚴重關閉有機會看到發生了什么。
我可以對快照信息做些什么,因為我的進程崩潰會有用嗎? 理想情況下,我可以寫出我的自定義日志格式,但如果我能有一種可靠的方法來確保在某處寫入崩潰轉儲,我會很高興。
我希望我可以實現從CriticalFinalizerObject派生的類,並在它處理時吐出最后機會錯誤注銷,但這似乎並沒有在我測試的StackOverflow場景中觸發。
由於缺少代碼簽名證書,我無法使用Windows錯誤報告和朋友。
我不是試圖從任意異常中“恢復”,我只是想記下下去的路上出了什么問題。
有任何想法嗎?
您可以嘗試創建一個minidump文件。 這是一個C ++ API,但應該可以編寫一個小的C ++程序來啟動應用程序,保持對進程的處理,等待進程句柄,然后在應用程序死亡時使用進程句柄創建一個minidump。
如果你做了你聲稱的:
然后你可能已經捕獲了異常, 除非它被第三方或COM組件拋出。
你當然沒有提供足夠的信息。
我只是說沒有人可以為你提供任何有用的建議,除非你發布更多的信息,甚至我們可能只能推測你的問題來源。
有一套新鮮的眼睛看你的代碼。
記錄無法捕獲某些錯誤。
有關詳細信息,請參閱此類似問題:
這是一個解釋異步異常的鏈接(以及為什么你無法從它們中恢復):
http://www.bluebytesoftware.com/blog/PermaLink.aspx?guid=c1898a31-a0aa-40af-871c-7847d98f1641
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.