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

时间:2012-02-27 16:06:54

标签: asp.net debugging timeout visual-studio-debugging

根据关于system.web的MSDN 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 :(得分:0)

如果您能够在本地生成长时间运行的执行,只需转到Debug菜单,然后选择“Break all”。然后你可以使用Debug - > Windows - >线程视图以查看所有活动线程。你可能能够确定花了这么长时间。

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

或者,当检测到长时间运行的执行时,可以将DebugDiag设置为capture a dump file。您可以使用WinDbg(硬盘)或Visual Studio 2010及更高版本来加载这些转储文件并检查程序的运行状态。

最后,您可以尝试反射性地更改RequestTimeoutManager类的行为,该类定期调用TimeoutIfNeeded(DateTime now)。但是,我不能轻易地看到一种方法来改变它以使用debug = false的行为。