在 System.Threading.ThreadAbortException 中第一次偶然出现的“mscorlib.dll”类型的异常

1、现象:

    在调试ASP.NET程序时,一边看浏览器窗口一边看 Visual Studio 输出窗口,发现其中出现以下信息:

在 System.Threading.ThreadAbortException 中第一次偶然出现的“mscorlib.dll”类型的异常
“System.Threading.ThreadAbortException”类型的异常在 mscorlib.dll 中发生,但未在用户代码中进行处理

上网查一下:http://www.cnblogs.com/wbcms/archive/2008/03/24/1119307.html

 

2、原因:
    由于内部你的代码调用了Response.End()的原因,或者调用了Response.Redirect("")Server.Transfer("")这两个方法,因为这两个方法内部也调用了Response.End()。

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

    这种现象是设计使然。

 

3、解决:

(1)、Response.End() -> ApplicationInstance.CompleteRequest,以便跳过 Application_EndRequest 事件的代码执行HttpContext.Current.ApplicationInstance.CompleteRequest();

(2)、Response.Redirect() -> Response.Redirect(String url, bool endResponse=false)
对 endResponse 参数它传递 false以取消对 Response.End 的内部调用,如果使用这种解决方法,Response.Redirect 后面的代码将得到执行

(3)、Server.Transfer() -> Server.Execute() 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值