0

所以我犯了一个愚蠢的错误,我调用了 myControl.Controls.Add(myControl);。很容易。有趣的是,这会导致 IIS 崩溃,并且在实际框架中抛出异常。我什至没有打破并让我调试,它就崩溃了。

.NET 框架似乎应该比以前更好地处理这件事。还是应该?这种预期的行为是这样的错误,还是调试器可以更优雅地处理它?

4

1 回答 1

4

这是记录在案的行为 - 请参阅MSDN 上的文档

这是相关的报价:

从 .NET Framework 2.0 版开始,StackOverflowException 对象无法被 try-catch 块捕获,并且默认情况下会终止相应的进程。

编辑:
从调试的角度来看,显然没有堆栈跟踪,如果问题是可重现的,那么相关的代码演练(或在实际异常发生之前进行调试)可能会查明问题。另一种方法可能是使用IIS 调试诊断工具并获取错误详细信息和故障转储。请参考这个SO answer,它似乎暗示了类似的方式。

于 2013-01-04T05:25:55.403 回答