2011-04-28 72 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