asp.net 在使用Response.Redirect try{}catch{}块失效
try
{
…
Response.Redirect("/mymaimai.aspx"); …
}
catch (Exception e)
{
// 异常处理
}
使用以上语句,不管是否有异常,都会执行catch中的,一直显示""失败"",都会抛出System.Threading.ThreadAbortException,原因如下:
Response.End 方法停止页的执行,并将该执行变换到应用程序的事件管线中的 Application_EndRequest 事件。 Response.End 后面的代码行将不执行。
此问题出现在 Response.Redirect 和 Server.Transfer 方法中,这是由于这两种方法都在内部调用 Response.End。
解决方案
若要解决此问题,请使用下列方法之一:
对于 Response.End,调用 ApplicationInstance.CompleteRequest 方法而不调用 Response.End,以便跳过 Application_EndRequest 事件的代码执行。
对于 Response.Redirect,使用重载 Response.Redirect(String url, bool endResponse),对 endResponse 参数它传递 false以取消对 Response.End 的内部调用。例如:
Response.Redirect ("/mymaimai.aspx", false);如果使用这种解决方法,Response.Redirect 后面的代码将得到执行。
对于 Server.Transfer,请改用 Server.Execute 方法。
状态
这种现象是设计使然。
解决后的代码:
try
{
Response.Redirect("/mymaimai.aspx",false);
}
catch
{
// 异常处理
}
本篇文章来源于 http://www.shenjk.com/ 原文链接:http://www.shenjk.com/details/670.html
asp.net 在使用Response.Redirect try{}catch{}块失效相关推荐
- 一起谈.NET技术,asp.net 页面转向 Response.Redirect, Server.Transfer, Server.Execute的区别...
Response.Redirect 简单地发送一条消息到浏览器,告诉浏览器定位到另一个页面.你可以使用下面的代码将用户引导到另一个页面: Response.Redirect("WebForm ...
- Response.Redirect() 跳转中的ThreadAbortException
最近写一个login用的handler,发现了一个以往没太注意的问题: public void ProcessRequest(HttpContext context) ...
- ASP.NET中Response.Redirect()方法深度剖析
本文中,我们将借助http分析工具Fiddler,来对Response.Redirect()方法的整个流程进行剖析 首先在Visual Studio中新建一个网站,在Default页面的Page_Lo ...
- Response.Redirect(),Server.Transfer(),Server.Execute()的区别与网站优化
1.Response.Redirect(): Response.Redirect方法导致浏览器链接到一个指定的URL.当Response.Redirect()方法被调用时,它会创建一个应答,应答头中指 ...
- Response.Redirect 打开新窗体的两种方法
普通情况下,Response.Redirect 方法是在server端进行转向,因此,除非使用 Response.Write("<script>window.location=' ...
- Response.Redirect 打开新窗口的两种方法
一般情况下,Response.Redirect 方法是在服务器端进行转向,因此,除非使用 Response.Write("<script>window.location='htt ...
- 使用Response.Redirect 两种方法打开一个新窗口
普通情况下,Response.Redirect 方法是在server端进行转向,因此,除非使用 Response.Write("<script>window.location=' ...
- Server.Transfer VS Response.Redirect
如果你读过很多行业杂志和 ASP.NET 示例,你会发现,大多数人使用 Response.Redirect 将用户引导到另一个页面,而另一些人好像偏爱于神秘的 Server.Transfer,那么,这 ...
- (转)Response.Redirect 打开新窗口的两种方法
一般情况下,Response.Redirect 方法是在服务器端进行转向,因此,除非使用 Response.Write("<script>window.location='htt ...
最新文章
- 如果list中既包含字符串,又包含整数,由于非字符串类型没有lower()方法,所以列表生成式会报错:...
- windbg bp condition
- 33万字!深度学习笔记在线版发布!
- POJ - 3074 Sudoku(DLX)
- BZOJ 4719--天天爱跑步(LCA差分)
- securecrt上传下载文件命令
- iOS开发Assertion failure in -[AFJSONRequestSerializer requestWithMethod:URLString:parameters:error:]
- 城域容灾体系的突破性进展
- markdown日常
- 下、Hadoop环境搭建——通过Xshell6连接VMware正式配置Hadoop
- postman 接口测试用例设计
- markdown基础
- 中线提取算法_基于Guided Filter的地形图中线要素提取算法
- 执念斩长河专升本复习11月总结
- 使用NtCreateThreadEx将Dll注入目标进程
- Android系统分析之带着问题看事件分发机制
- 影响不良贷款拨备覆盖率的因素分析
- 【Pytest篇】pytest生成报告的几种方式
- FW:平凡(trivial)和非平凡(non-trivial)_拔剑-浆糊的传说_新浪博客
- 如何快速把多张图片调成统一尺寸?
热门文章
- 使用tcpwrapper实现访问控制功能
- Btree(B-树)---C++
- OpenCart之在线客服(Google Talk)模块教程
- 企业品牌竞争力研究(二):提高企业品牌竞争力的要素(创新SPR理论)
- Python中最好用的命令行参数解析工具
- VUE-CLI webpack配置autoprefixer后build模式与dev不相同,打包后部分前缀或属性丢失,所见即所得...
- 《马哥教育协办GIAC、GOPS顶级技术峰会完美落幕》
- LVS学习笔记及总结(思维导图版)
- 深入讨论PHP5对象复制技术
- Lion的发送E-mail的类