我正在使用Visual Studio 2010开发一个asp.net Web应用程序。在调试过程中有一堆输出窗口消息:
mscorlib.dll中出现'System.Threading.ThreadAbortException'类型的第一次机会异常
和
mscorlib.dll中发生了'System.Threading.ThreadAbortException'类型的异常,但未在用户代码中处理
我已经阅读了关于how和why主题的一些很棒的问答,这些可能会被提出并how to handle them(or not handle them)。我的第一个猜测是它与代码中的Response.Redirect()有关。但是,我在输出中看到它们,我不确定这些输出消息的来源。
问题:如何在Visual Studio 2010中确定 第一次机会异常的位置?
一旦我确定了来源,我就可以根据与此问题相关的Q& A进行调查,解决或完全忽略。提前谢谢!
答案 0 :(得分:1)
根据个人经验,除非因此而发生特定错误,否则通常可以忽略这些消息。
我过去已经读过,这可以通过在Response.Redirect
的第二个参数中添加false来解决,以便在重定向后停止处理。
E.g。 Response.Redirect("path/to/page.aspx", false);
在页面处理程序中使用此方法终止对一个页面的请求并为另一个页面启动新请求时,请将endResponse设置为false,然后调用CompleteRequest()方法。如果为endResponse参数指定true,则此方法为原始请求调用End方法,该方法在完成时抛出ThreadAbortException异常。此异常对Web应用程序性能有不利影响,这就是建议为endResponse参数传递false的原因。有关更多信息,请参阅End方法。