ASP.NET程序中 拋出"Thread was being aborted. "異常(轉)

Thread was being aborted :中文意思 線程被終止 線程

引用地址:http://support.microsoft.com/default.aspx/kb/312629/EN-US/?p=1 code

緣由: 事件

那個 Response.End 方法結束頁的執行,並轉移到執行 的Application_EndRequest 事件在應用程序的事件管道。該行的代碼以下 Response.End 不會被執行。
此問題出如今 Response.RedirectServer.Transfer方法 方法,由於這兩種方法調用 Response.End 在內部。 get

解決方案: string

若要解決此問題,請使用下列方法之一: it

  • 爲了 Response.End,調用 HttpContext.Current.ApplicationInstance.CompleteRequest 方法,而不是 Response.End 繞過的代碼執行 的Application_EndRequest 事件。

try{ io

HttpContext.Current.Response.ContentEncoding = utf;
           HttpContext.Current.Response.Write(style);
           HttpContext.Current.Response.Write(sb.ToString());
           //HttpContext.Current.Response.End();
coding

}
catch{}
finally
{
System.Web.HttpContext.Current.ApplicationInstance.CompleteRequest();
} 引用

  • 爲了 Response.Redirect,使用過載, Response.Redirect(string URL,bool endResponse) 的推移 false endResponse 參數壓制內部電話 Response.End。例如:

    Response.Redirect(「nextpage.aspx」,false);

    若是您使用此解決方案,下面的代碼 Response.Redirect 被執行。 程序

  • 爲了 Server.Transfer方法,使用 使用Server.Execute 方法來代替。

另:儘可能不要把Response.Redirect("targetUrl");語句寫在try裏面了! 使用Response.Redirect("targetUrl",false);

相關文章
相關標籤/搜索