跟踪Windows服务中的stackoverflow错误

7 c# stack-overflow windows-services

我对我的一个Windows服务做了一个小小的调整,而不是我运行它得到了,

描述:由于堆栈溢出,进程终止.

所以我回到旧版本并运行它,我仍然得到stackoverflow错误.

最糟糕的部分是我调试了两个,我没有得到这个错误再次发生.如何/什么是找到导致Windows服务溢出的最佳方法?

Dmi*_*try 7

您可以订阅AppDomain.UnhandledException以记录异常.另一种选择是查看服务崩溃时是否生成了故障转储,并使用WinDbg来跟踪问题.您还可以配置窗口以生成这些转储.WinDbg附带的脚本可以附加到进程并在此进程崩溃时生成转储.

从这篇文章:

...并且发现StackOverflowException并不那么难.如果您运行!clrstack并找到200多行的callstack,您可以或多或少地确定这是您的问题.

更新:

如果使用.NET 4.0,则需要将legacyCorruptedStateExceptionsPolicy元素添加到服务配置文件中,以便在AppDomain.UnhandledException中记录异常.