Response.Redirect报"正在中止进程"异常的处理

摘要:
最近,在程序中发现了大量错误日志,其中大多数是try-catch捕获Response时记录的“中止进程”。重新使用可以使用try-catch语句捕获此异常。Response.End方法终止页面的执行,并将此执行切换到Application_EndRequest事件的事件管道中的Application。不要在Response之后执行代码行。终止此问题出现在Response.Redirect和Server.Transfer方法中,因为这两个方法都在内部调用Response.End。对于Response.Redirect,使用重载Response.rerect,该重载将false传递给endResponse参数以取消对Response.End的内部调用。

最近在程序里发现了大量的错误日志,很大一部分是在try-catch捕捉Response.Redirect时记录的"正在中止进程"。

在网上google了一把后,总结如下:

如果使用 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(String url, bool endResponse),该重载对 endResponse 参数传递 false 以取消对 Response.End 的内部调用。例如:
Response.Redirect ("nextpage.aspx", false);

这样就可以了。

免责声明:文章转载自《Response.Redirect报"正在中止进程"异常的处理》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇(原创网上办法经过改良)系统重装后,如何快速的回复oracle 10g(测试环境:windows server 2003 sp1+Oracle 10g)快速使网页变灰色下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

最强PostMan使用教程(1)

最近需要测试产品中的REST API,无意中发现了PostMan这个chrome插件,把玩了一下,发现postman秉承了一贯以来google工具强大,易用的特质。独乐乐不如众乐乐,特此共享出来给大伙。 Postman介绍 Postman是google开发的一款功能强大的网页调试与发送网页HTTP请求,并能运行测试用例的的Chrome插件。...

Django后端发送小程序微信模板消息(服务通知)

模板消息 官方文档:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/template-message/templateMessage.send.html模板消息如下图所示 Django中获取access_token 根据文档描述,获取access_token文档,后端...

.net中将DataTable导出到word、Excel、txt、htm的方法

dt:DataTable strFile:fileName strExt:type private void GridExport(DataTable dt, string strFile, string strExt) { string strAppType = ""; switch (strExt) {...

Jedis 操作 Redis 工具类

配置类 pom.xml pom.xml 里配置依赖 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.5.2</version&g...

Nginx安装配置与HelloWorld

《深入理解Nginx》阅读与实践(一):Nginx安装配置与HelloWorld 最近在读陶辉的《深入理解Nginx:模块开发与架构解析》,一是想跟着大牛练练阅读和编写开源代码的能力,二是想学学Nginx优秀的架构设计,三是想找一个点深入下Linux下网络编程的细节。侯捷在他的《STL源码剖析》的自序里说过,“追踪一流作品并于其中吸取养分,远比自己关起...

Http协议原理解析第一篇

一:http的由来: OSI模型把网络通信分成七层:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,对于开发网络应用人员来说,一般把网络分成五层,这样比较容易理解。这五层为:物理层、数据链路层、网络层、传输层和应用层(最顶层),下面是一张网络分层的图片(来源于网络): 网络中的计算机互相通信就是实现了层与层之间的通信,要实现层与层之间的通...