我編寫了一個控制檯應用程序和一個伴隨類庫,用於從雲服務中導出一些數據。該應用程序由SQL Server Integration Services調用,它依賴於應用程序返回的退出代碼來確定它是否正常工作。來自.NET控制檯應用程序的意外退出代碼
間歇性地應用程序返回一個退出代碼-532462766(0xE0434352),它是.NET未處理的異常的通用錯誤代碼。至於爲什麼會發生,我完全不知所措。
應用程序生成的日誌文件不顯示任何問題,並且它們看起來像所有內容都已成功完成。
應用程序事件查看器日誌中沒有條目。
應用程序甚至有未處理的異常處理程序:
AppDomain.CurrentDomain.UnhandledException += UnhandledErrorHandler;
...
private void UnhandledErrorHandler(object sender, UnhandledExceptionEventArgs e) {
logWriter.Write(e.ExceptionObject.ToString(), logLevel.Fatal);
logWriter.Write("Exiting now...", logLevel.Fatal);
Dispose();
}
我甚至寫了一個批處理文件來執行應用程序,並且在傳遞到SSIS之前登錄的退出代碼。 SSIS正在收到的退出代碼似乎是應用程序返回的代碼。但我無法在任何地方看到未處理的異常。
class Program {
static int Main(string[] args) {
...
return (Success) ? 0 : 1;
}
由於是間歇(以及數據提取可以採取幾個小時)我不能只運行它在Visual Studio中:
控制檯應用程序通過定義Main()
像這樣返回退出代碼並調試它。我懷疑它可能與應用程序運行了這麼長時間的事實有關,但我似乎無法證實這一點。
還有什麼可以導致.NET應用程序返回該退出碼嗎?我在排除故障時錯過了什麼嗎?
也許[此](http://stackoverflow.com/questions/14711633/my-c-sharp-application-is-returning-0xe0434352-to-windows-task-scheduler-but-it)帖子和答案可以幫助你。是否可以註釋掉代碼的某些部分來查明問題?你是否也部署PB文件以獲得更多信息,並且你是否已經排除了內存問題? –
謝謝Jeroen,但我看到了這個問題,不幸的是它沒有幫助,因爲我已經有一個未處理的異常處理程序,並且應用程序事件查看器日誌中沒有條目。我會嘗試部署PDB文件,看看是否能給我任何額外的信息。 –