2009-10-20 84 views
9

我們的.NET 2.0應用程序之一開始隨機消失。在事件日誌中沒有記錄,Dr.Watson不生成故障轉儲,沒有任何內容...如何解決剛剛消失的.NET應用程序?

如何解決此應用程序的故障?

+0

您是否進行任何p/invoke調用? – 2009-10-20 13:19:07

+0

不是直接。我們使用Crystal Reports,它可以進行這種調用。無論如何,應用程序工作了一年沒有問題。 – alex 2009-10-20 13:20:25

+0

你使用任何COM組件嗎? – 2009-10-20 13:25:26

回答

5

1)將事件處理程序附加到AppDomain.UnhandledException事件並記錄異常對象。

AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); 

2)安裝一個線程異常處理

Application.ThreadException += 
    new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); 

WPF和Silverlight應用程序使用更多的異常處理程序,例如分別是Application.DispatcherUnhandledException和Application.UnhandledException,但在這種情況下這些不是您感興趣的。我包括他們的完整性。

+1

它被處理 - 沒有日誌記錄。 – alex 2009-10-20 13:21:31

2

修改代碼以在每個相關部分之後包含日誌步驟,然後檢查日誌文件以查看其發生的位置。

如果它甚至不啓動,那麼這會告訴你的東西太...

3

我們也有類似的問題。我們有一個AppDomain.UnhandledException的事件,但它甚至跳過了這個。原來,這是我們測試剪貼板內容時導致的SystemAccessViolation。

如果它是類似的(EG跳過AppDomain.UnhandledException事件),那麼我會建議記錄來自您的流程之外的互操作性和「敵對」數據調用的所有內容,並且代碼將全部檢查。我們花了幾個星期的時間來追蹤它,並修改了一行。

另外,打開VS中的MDAs並運行你的程序,看看你是否得到錯誤。

相關問題