zoukankan      html  css  js  c++  java
  • 关于在 System.Threading.ThreadAbortException 中第一次偶然出现的“mscorlib.dll”类型的异常

    开发环境为VS2005,OS 为Windows 2003,系统登录后在跳转到另一页面时会报此错误:

    在 System.Threading.ThreadAbortException 中第一次偶然出现的“mscorlib.dll”类型的异常
    “System.Threading.ThreadAbortException”类型的异常在 mscorlib.dll 中发生,但未在用户代码中进行处理

    但不影响程序的正常运行。于是在网上查了查,发现相关资料不多。后来找到微软的官方解释,搞定。
    --------------------------------------------------------------------------------------------------------------

    症状

    如果使用 Response.EndResponse.Redirect Server.Transfer 方法,则出现 ThreadAbortException 异常。 可使用 try-catch 语句捕捉此异常。

    原因

    Response.End 方法停止页的执行,并将该执行变换到应用程序的事件管线中的 Application_EndRequest 事件。 Response.End 后面的代码行将不执行。



    此问题出现在 Response.Redirect Server.Transfer 方法中,这是由于这两种方法都在内部调用 Response.End

    解决方案

    若要解决此问题,请使用下列方法之一:
    • 对于 Response.End,调用 ApplicationInstance.CompleteRequest 方法而不调用 Response.End,以便跳过 Application_EndRequest 事件的代码执行。
    • 对于 Response.Redirect,使用重载 Response.Redirect(String url, bool endResponse),对 endResponse 参数它传递 false以取消对 Response.End 的内部调用。例如:
        Response.Redirect ("nextpage.aspx", false);
      如果使用这种解决方法,Response.Redirect 后面的代码将得到执行。
    • 对于 Server.Transfer,请改用 Server.Execute 方法。

    状态

    这种现象是设计使然。
  • 相关阅读:
    作为一个 .NET 开发者 应该了解哪些知识?
    服务器扩容,新加一上硬盘,是否要重做raid
    DB2常见错误
    Eclipse快捷键与Notepad++ 快捷建冲突的问题
    Java+MySql图片数据保存
    也谈设计模式Facade
    MyBatis入门级Demo
    Python中的字符串与字符编码
    Python流程控制语句
    Python中的运算符
  • 原文地址:https://www.cnblogs.com/wbcms/p/1119307.html
Copyright © 2011-2022 走看看