2011-04-28 70 views
0

由於在大中型應用程序中發生堆棧溢出異常,我的網站的IIS7工作進程(w3wp.exe)每兩分鐘就會重新啓動一次。堆棧溢出IIS7中的某處C#ASP.NET web應用程序

事件查看器不提供有關錯誤在代碼中出現的位置的任何詳細信息。

Application: w3wp.exe 
Framework Version: v4.0.30319 
Description: The process was terminated due to stack overflow. 

有沒有堆棧跟蹤在從事件查看器中找到錯誤所在。代碼中沒有特定的遞歸函數(afaik),可能有間接遞歸,例如呼叫B呼叫C呼叫A.

我該如何繼續尋找有故障的代碼在哪裏?我無法使用Visual Studio進行調試,因爲它只發生在有數百個用戶訪問網站的生產服務器上。

+0

堆棧溢出異常的常見原因是性能。例如。 getter返回getter屬性而不是基礎變量。 – 2011-04-28 10:48:23

+0

在這種情況下,我想它會立即發生,而不是統計上,我將能夠在開發機器上重現它。 – 2011-04-28 10:51:16

+0

我也會假設,我只是將它指出來,作爲對你的觀察沒有遞歸函數的評論。 – 2011-04-28 10:54:04

回答

0

Visual Studio調試器會捕獲它。

+0

它只發生在有數百個用戶訪問該網站的生產環境中。 – 2011-04-28 10:39:05

+0

使用[遠程調試器](http://msdn.microsoft.com/en-us)可以[附加到進程](http://msdn.microsoft.com/en-us/library/c6wf8e4z.aspx) /library/bt727f1t(v=vs.71).aspx)? – Smudge202 2011-04-28 10:47:50

+1

這將需要在Win2008生產服務器上安裝Visual Studio。 – 2011-04-28 10:49:10