C# IIS下的Stackoverflow异常:我可以给出更好的错误消息吗?

C# IIS下的Stackoverflow异常:我可以给出更好的错误消息吗?,c#,iis,stack-overflow,C#,Iis,Stack Overflow,我们有一个在IIS下运行的服务,它可能由于堆栈溢出而崩溃。然而,从事件日志中看不出发生了什么。我看到的只是 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 及 我们对如何修复stackoverflow有合理的想法(将

我们有一个在IIS下运行的服务,它可能由于堆栈溢出而崩溃。然而,从事件日志中看不出发生了什么。我看到的只是

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

我们对如何修复stackoverflow有合理的想法(将一些递归方法切换到迭代方法)。但是,是否有某种方法将stackoverflow记录到事件日志中

我知道您无法在.Net中捕获stackoverflows,但IIS大概可以处理这个问题。例如,如果我使用精心设计的stackoverflow运行控制台应用程序,我会

Process is terminated due to StackOverflowException.
这是清楚的


此外,快速故障保护似乎没有起作用:最大故障设置为5,它似乎会持续重新启动。

使用msft的调试诊断。这可以配置为在堆栈溢出时创建进程转储。然后,您可以将转储加载到windbg中,并获取导致溢出的堆栈。 苔丝在她的博客上有很多关于如何做到这一点的信息,包括培训课程

我假设
数据字段包含错误号。
会告诉你错误号,当谷歌搜索时,会告诉你有“StackOverflow”吗?你能显示代码吗?我想知道你是否在某个地方陷入了无限循环。。可能是某个递归调用导致了问题。@Chris:实际上,异常代码
0xc0000fd
似乎表示堆栈溢出。也许这就够了。
Process is terminated due to StackOverflowException.