2014-10-17 48 views
0

我們有一個在IIS下運行的服務,可能會因堆棧溢出而崩潰。然而,從事件日誌中發生的事情並不明顯。我看到的是IIS下的Stackoverflow異常:我可以提供更好的錯誤消息嗎?

Faulting application name: w3wp.exe, version: 7.5.7601.17514, time stamp: 0x4ce7afa2 
Faulting module name: clr.dll, version: 4.0.30319.18444, time stamp: 0x52717f9a 

A process serving application pool 'x' suffered a fatal communication error with the 
Windows Process Activation Service. The data field contains the error number. 

我們有合理的想法如何解決的計算器(轉換我們的一些遞歸方法迭代的)。但是,是否有某種方法將stackoverflow記錄到事件日誌中?

我知道你不能在.Net中捕捉到stackoverflows,但大概IIS可以處理這個。例如。如果我使用故意設計的計算器運行控制檯應用程序,我會得到

Process is terminated due to StackOverflowException. 

這很清楚。

此外,快速失敗保護似乎沒有在踢:最大失敗數設置爲5,它似乎不斷重啓。

+0

我相信了'數據字段包含錯誤number.'會告訴你哪些一派當錯誤數,會告訴你,有是'StackOverflow? – 2014-10-17 16:32:48

+0

你可以顯示代碼我不知道你是否被困在一個無限循環某處..可能是一些'遞歸'調用導致的問題.. – MethodMan 2014-10-17 16:51:42

+0

@Chris:實際上,異常代碼'0xC00000FD'似乎表明stackoverflow。也許這就夠了。 – Rob 2014-10-17 18:39:13

回答

0

使用來自msft的調試診斷。這可以配置爲在存在堆棧溢出時創建進程轉儲。然後,您可以將轉儲裝入windbg並獲取導致溢出的堆棧。 苔絲有很多關於如何做在她的博客這包括培訓課程 http://blogs.msdn.com/b/tess/

相關問題