ASP.NET程序中 抛出"Thread was being aborted. "异常

本文探讨了在网页应用中遇到的线程被终止问题,并提供了详细的解决方案。问题通常发生在使用Response.Redirect和Server.Transfer等方法时。文章介绍了如何通过调整代码避免此问题。

今天突然遇到这个问题了!不过刷新页面后错误就没有! 而且之前也没有这个错误哦! ... 不过我还是去Google了一下答案!

Thread was being aborted :中文意思 线程被终止

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

原因:

那个 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) 的推移 false 为 endResponse 参数压制内部电话 Response.End。例如:
  Response.Redirect(“nextpage.aspx”,false);
                        如果您使用此解决方案,下面的代码 Response.Redirect 被执行。
为了 Server.Transfer方法,使用 使用Server.Execute 方法来代替。
另:尽量不要把Response.Redirect("targetUrl");语句写在try里面了! 使用Response.Redirect("targetUrl",false);

本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/jinho/archive/2010/03/11/5367242.aspx

转载于:https://www.cnblogs.com/jinho/archive/2010/04/03/1703806.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值