您的位置:首页 > Web前端

PRB: ThreadAbortException Occurs If You Use Response.End, Response.Redirect, or Server.Transfer

2017-02-21 13:05 381 查看


Symptoms

If you use the Response.End, Response.Redirect,
or 
Server.Transfer method, a ThreadAbortException exception
occurs. You can use a try-catch statement to catch this exception.


Cause

The Response.End method ends the page execution and shifts the execution to the Application_EndRequest event
in the application's event pipeline. The line of code that follows Response.End is not executed.

This problem occurs in the Response.Redirect and Server.Transfer methods
because both methods call Response.End internally.


Resolution

To work around this problem, use one of the following methods:

For Response.End, call the HttpContext.Current.ApplicationInstance.CompleteRequest method
instead of Response.End to bypass the code execution to the Application_EndRequest event.
For Response.Redirect, use an overload, Response.Redirect(String
url, bool endResponse) that passes false for the endResponse parameter
to suppress the internal call to Response.End. For example:

Response.Redirect ("nextpage.aspx", false);


If you use this workaround, the code that follows Response.Redirect is executed.
For Server.Transfer, use the Server.Execute method
instead.


Status

This behavior is by design.

属性

文章 ID:312629 - 上次审阅时间:2012年8月30日 - 修订版本: 1
这篇文章中的信息适用于:
Microsoft ASP.NET 4.5, Microsoft ASP.NET 4.0, Microsoft ASP.NET 3.5, Microsoft ASP.NET 2.0, Microsoft ASP.NET 1.1, Microsoft ASP.NET 1.0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐