Csharp/C#教程:Response.Redirect 正在中止线程解决方案分享

这两天在开发调试过程中,老是会出现在一个”正在中止线程“(ThreadAbortException)的例外信息。
例外是由Response.Redirect方法产生的,虽然知道是线程的问题,但是不知为何Redirect会出现这样的错误,以前是没有碰到过,转移到Asp.net2.0开发就遇上了。
在狂Google了一下后,才发现MS早就发现了这个问题,但提供了解决方法。以下是主要信息的摘要:
症状
如果使用Response.End、Response.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(Stringurl,boolendResponse),该重载对endResponse参数传递false以取消对Response.End的内部调用。例如:Response.Redirect(“nextpage.aspx”,false);
B-E-A-utiful!就这么简单,问题解决了,感谢微软,感谢GOOGLE,感谢上帝!
现在把解决方法张贴出来,希望能帮助更多人解决开发过程中遇到的类似问题,将搜索进行到底!
您可能感兴趣的文章:response.setContentType()的作用及MIME参数详解response.setHeader参数、用法的介绍在FireFox/IE下Response中文文件名乱码问题解决方案

标签: 线程 rect 解决方案 ed ons edi esp direct ns ec ir pon

c语言socket多线程编程限制客户端连接数

C语言socket编程开发应用示例

上述就是C#学习教程:Response.Redirect 正在中止线程解决方案分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/904367.html

(0)
上一篇 2021年10月21日
下一篇 2021年10月21日

精彩推荐