其实网上有很多回答。
主要就是抓错,使用 Response.End、Response.Redirect 或 Server.Transfer 方法,将出现 ThreadAbortException 异常。
主要原因是:Response.End 。因为:Response.Redirect 和 Server.Transfer 方法均在内部调用 Response.End。
1、对于 Response.End,调用 HttpContext.Current.ApplicationInstance.CompleteRequest 方法而不是 Response.End 以跳过 Application_EndRequest 事件的代码执行。
2、对于 Response.Redirect,请使用重载 Response.Redirect(String url, bool endResponse),该重载对 endResponse 参数传递 false 以取消对 Response.End 的内部调用。例如:
try
{
Response.Redirect("default.aspx");
}
catch(exception e)
{}
catch中会捕获如题异常。
将代码中修改:
Response.Redirect("default.aspx",flase);
问题就解决了。