【问题标题】:A first chance exception of type 'System.Threading.ThreadAbortException' occurred in mscorlib.dll在 mscorlib.dll 中发生了“System.Threading.ThreadAbortException”类型的第一次机会异常
【发布时间】:2010-12-30 16:44:28
【问题描述】:

我正在开发一个 asp.net 应用程序。当我尝试编译和运行该应用程序时;它运行成功。

但是当我尝试调试应用程序时,它随时都会给我错误 -

在 mscorlib.dll 中发生了“System.Threading.ThreadAbortException”类型的第一次机会异常

它不会在任何特定代码行给出错误.. 它会在任何代码行给出此错误(不确定).. 然后网页显示 - “服务器应用程序不可用”错误。

即使我尝试在即时窗口/快速观察中解析/执行某些语句 - 它也会给我以上错误..

例如,我在 XElement 中加载了一个 xml 文档(超过 10000 行),当我尝试通过 xpath 将某些属性值检查为 XElementObj.XPathSelectElement("/asdf/asd/wqer/xyz").. 它给出上述错误..(不是所有时间,而是随机)。

任何人对此有任何想法..请帮助。

【问题讨论】:

  • 我不确定这与“第一次机会异常”有什么关系 - 第一次机会异常是被捕获和处理的异常,以保持工作流的完整性。

标签: .net


【解决方案1】:

我有类似的东西,从另一个问题中找到了this answer

如果您想确定 发生异常,您可以 选择调试→异常菜单 项目,并在出现的对话框中, 选中“Common”的第一个复选框 语言运行时异常”。这 将使调试器尽快中断 发生异常而不是仅 打破未处理的异常。

这也是原因之一 通常捕获泛型是一个坏主意 除非您清楚 记录捕获的信息。

【讨论】:

  • 天啊。我多久忘记一次...再次感谢您提醒我!我不喜欢新的“把所有东西都扔”——方法不是真的:-) 太多的例外,伙计......
【解决方案2】:

我在我的 asp.net 应用程序中抛出了这个异常,发现 this forum post:

PRB:如果使用 Response.End、Response.Redirect 或 Server.Transfer,则会发生 ThreadAbortException http://support.microsoft.com/default.aspx?scid=kb;en-us;312629

这是有道理的,因为我在呈现任何内容之前就在页面上重定向(顺便说一下预期的行为)

MS 解决任何异常的方法:

要解决此问题,请使用以下方法之一:

  • 对于 Response.End,调用 HttpContext.Current.ApplicationInstance.CompleteRequest 方法而不是 Response.End 以绕过代码执行到 Application_EndRequest 事件。

  • 对于 Response.Redirect,使用重载 Response.Redirect(String url, bool endResponse) 为 endResponse 参数传递 false 以抑制对 Response.End 的内部调用。例如:Response.Redirect ("nextpage.aspx", false);

  • 对于 Server.Transfer,请改用 Server.Execute 方法。

如果您使用此解决方法,则会执行 Response.Redirect 之后的代码。 对于 Server.Transfer,请改用 Server.Execute 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-20
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 2017-07-23
    相关资源
    最近更新 更多