调试请求超时(System.Web.HttpException)

4
根据 MSDN 关于 system.web httpRuntime executionTimeout 的说明:
This time-out applies only if the debug attribute in the compilation element is
False.  Therefore, if the debug attribute is True, you do not have to set this
attribute to a large value in order to avoid application shutdown while you are
debugging.

对于大多数调试来说,这是一个很棒的功能,因为它使请求在调试期间保持活动状态。但是,如果我想要调试超时错误本身呢?无论我在.NET的哪个地方设置超时属性,它似乎都允许无限时间,所以我永远无法捕获异常进行调试!

1个回答

0

如果您能够在本地生成长时间运行的执行,只需转到“调试”菜单,然后选择“中断所有”。然后,您可以使用“调试”->“窗口”->“线程”视图查看所有活动线程。您可能能够确定是什么导致了这么长时间。

或者,您可以将Debug=false;设置为false;然后将Visual Studio附加到您的进程,并设置它在抛出ThreadAbortExceptions实例时中断。

另外,您可以在检测到长时间运行的执行时将DebugDiag设置为捕获转储文件。您可以使用WinDbg(困难)或Visual Studio 2010及以上版本来加载这些转储文件并检查程序的运行状态。

最后,您可以尝试反射性地更改RequestTimeoutManager类的行为,该类定期调用TimeoutIfNeeded(DateTime now)。但是,我无法轻松地看到如何将其更改为使用debug=false的行为。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接