龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > asp.net编程 >

解决ASP.NET 输出"Thread was being aborted. "异常问题

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
由Response.Redirect或Response.End引发的"Thread was being aborted. "异常 string _sql =string.Empty; SqlConnection conn = SqlHelper.dbconn(); try { conn.Open(); _sql = "sql 语句"; SqlCommand cm = new SqlCommand(_sql,conn); cm.Execute

由Response.Redirect或Response.End引发的"Thread was being aborted. "异常

        string _sql =string.Empty;
        SqlConnection conn = SqlHelper.dbconn();
        try
        {
            conn.Open();
            _sql = "sql 语句";
            SqlCommand cm = new SqlCommand(_sql,conn);
            cm.ExecuteNonQuery();
            function.Response("<center>执行成功</center>");
            cm.Dispose();
            Response.End();  //这样子会显示"Thread was being aborted. "异常
        }
        catch (Exception ex)
        {
                Response.write(ex.Message);
        }
        finally
        {
            conn.Close();
            conn.Dispose();
        } 

改成如下方面即可跳过异常
        string _sql =string.Empty;
        SqlConnection conn = SqlHelper.dbconn();
        try
        {
            conn.Open();
            _sql = "sql 语句";
            SqlCommand cm = new SqlCommand(_sql,conn);
            cm.ExecuteNonQuery();
            function.Response("<center>执行成功</center>");
            cm.Dispose();
            Response.End();
        }
        catch (Exception ex)
        {
            if (!(ex is System.Threading.ThreadAbortException)) //关键这句
            {
                Response.write(ex.Message);
            }
        }
        finally
        {
            conn.Close();
            conn.Dispose();
        } 

 

以下来自网络:
代码对于 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 方法。

 

本文版权归学IT网(www.xueit.com)所有,任何单位与个人转载必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

精彩图集

赞助商链接