• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

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

原因:

那个 Response.End 方法结束页的执行,并转移到执行 的Application_EndRequest 事件在应用程序的事件管道。该行的代码如下 Response.End 不会被执行。
此问题出现在 Response.RedirectServer.Transfer方法 方法,因为这两种方法调用 Response.End 在内部。

解决方案:

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

  • 为了 Response.End,调用 HttpContext.Current.ApplicationInstance.CompleteRequest 方法,而不是 Response.End 绕过的代码执行 的Application_EndRequest 事件。

try{

HttpContext.Current.Response.ContentEncoding = utf;
           HttpContext.Current.Response.Write(style);
           HttpContext.Current.Response.Write(sb.ToString());
           //HttpContext.Current.Response.End();

}
catch{}
finally
{
System.Web.HttpContext.Current.ApplicationInstance.CompleteRequest();
}

  • 为了 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);


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ASP.NET中的数据绑定:哪个更快?发布时间:2022-07-10
下一篇:
Nine tips for a healthy "in production" ASP.NET application发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap