在使用 Response.End、Response.Redirect 或 Server.Transfer 时出现 ThreadAbortException

简介:

如果使用 Response.EndResponse.Redirect  Server.Transfer 方法,将出现ThreadAbortException 异常。您可以使用 try-catch 语句捕获此异常。这种行为是设计导致的。

 

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

此问题出现在 Response.Redirect  Server.Transfer 方法中,因为这两种方法均在内部调用Response.End

 

要解决此问题,请使用下列方法之一:

  • 对于 Response.End,调用HttpContext.Current.ApplicationInstance.CompleteRequest 方法而不是Response.End 以跳过 Application_EndRequest 事件的代码执行。
  • 对于 Response.Redirect,请使用重载 Response.Redirect(String url, bool endResponse),该重载对 endResponse 参数传递 false 以取消对 Response.End 的内部调用。例如: Response.Redirt ("nextpage.aspx", false);
    如果使用此替代方法,将执行 Response.Redirect 后面的代码。对于 Server.Transfer,请改用 Server.Execute 方法。

 












本文转自cnn23711151CTO博客,原文链接:http://blog.51cto.com/cnn237111/518404 ,如需转载请自行联系原作者














相关文章
|
JSON JavaScript 数据格式
proxy error: could not proxy request解决方案
proxy error: could not proxy request解决方案
9204 0
proxy error: could not proxy request解决方案
|
6月前
|
XML 数据格式
svn报错-ra_serf: The server sent a truncated HTTP response body.
svn报错-ra_serf: The server sent a truncated HTTP response body.
129 1
|
6月前
|
JavaScript
Proxy error: Could not proxy request错误解决
Proxy error: Could not proxy request错误解决
250 0
|
7月前
|
文字识别
Response from backend server
Response from backend server
37 1
Proxy error: Could not proxy request
Proxy error: Could not proxy request
2194 0
Proxy error: Could not proxy request
|
应用服务中间件 API nginx
解决跨域问题 Response to preflight request doesn't pass access control check
解决跨域问题 Response to preflight request doesn't pass access control check
9167 0
|
SQL 关系型数据库 MySQL
【解决思路】HTTP Status 500 Type Exception ReportMessage Request processing failed; 【已解决】
经常测试的一个网页,突然报错500。前面也没有发生过,但突然报错,只能先改错了,不然都没法进入页面。为什么会调用到存在bug的语句,而以前没有发生这种情况?这一问题没能想清楚,只能归咎于编译器了。
300 0
【解决思路】HTTP Status 500 Type Exception ReportMessage Request processing failed; 【已解决】
|
对象存储
上传文件到OSS报错:[Server]Unable to execute HTTP request: Position is not equal to file length
上传文件到OSS报错:[Server]Unable to execute HTTP request: Position is not equal to file length
1048 0
get event by http request via CL_HTMLB_MANAGER
get event by http request via CL_HTMLB_MANAGER
104 0
get event by http request via CL_HTMLB_MANAGER
|
应用服务中间件
no response from server
今天配置的nginx代理,同事反应在swagger上没响应,出现如下情况 本来以为是配置的地址有问题,但是无论换成哪个网卡地址都不行,后面在 “proxy_pass” 下面添加了一个请求头 “proxy_set_header”,如下所示 location /bi/ { proxy_pass http://127.
2089 0