Response.Redirect(string url)报错:System.Threading.ThreadAbortException: 正在中止线程。

今天用Response.Redirect(string url)重定向时,生产环境总是报ThreadAbortException异常,而调试时没问题。在网上查了很久,都是一样的解决方案,写的貌似很详细,实际不清不楚,解决不了问题。
实际上微软官方的文档已经给了解决方案,只是写的不是很详细,但确实解决了我的问题。

先看报错的代码:

Response.Redirect("xxx.aspx");

再看报错:

System.Threading.ThreadAbortException: 正在中止线程。
   在 System.Threading.Thread.AbortInternal()
   在 System.Threading.Thread.Abort(Object stateInfo)
   在 System.Web.HttpResponse.AbortCurrentThread()
   在 System.Web.HttpResponse.End()
   在 System.Web.HttpResponse.Redirect(String url, Boolean endResponse, Boolean permanent)
   在 System.Web.HttpResponse.Redirect(String url)
   在 WebYKT.Web.DingTalkLogin.Page_Load(Object sender, EventArgs e) 位置 E:\xxx.aspx.cs:行号 231

然后看下微软的文档怎么说的:
Response.Redirect
这里有2点需要注意:

  1. 使用 HttpResponse.Redirect(String, Boolean) 重载并传递 false endResponse 参数;
  2. 调用 CompleteRequest 方法;

修改后的最终代码:

Response.Redirect("http://xxx.xxx.xxx.xxx/xxx.aspx", false); //这里补全了ip/域名,如果没有补全,用于移动页面时该页可能会丢失。
Context.ApplicationInstance.CompleteRequest();
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

公西雒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值