【发布时间】:2010-07-09 14:37:05
【问题描述】:
我(现在)理解 Response.Redirect() 和 Response.End() 抛出 ThreadAbortException 作为杀死当前处理线程以模拟 ASP Classic 的 Response.End() 和 Response.Redirect 方法的行为的昂贵方式.
但是。
在我们的应用程序中似乎间歇性地出现异常气泡过高。例如,我们有一个从客户端 javascript 调用的页面,以返回一个小字符串以显示在页面中。
protected void Page_Load(object sender, EventArgs e)
{
// Work out some stuff.
Response.Write(stuff);
Response.End();
}
这通常有效,但有时,我们会将异常冒泡到 UI 层并在页面中显示部分异常文本。
同样,我们有其他地方:
// check the login is still valid:
if(!loggedin) {
Response.Redirect("login.aspx");
}
在某些情况下,用户会被重定向到 login.aspx,而在其他情况下,用户会收到 ASP.NET 错误页面和堆栈转储(因为我们的开发服务器的配置方式)。
即在某些情况下,response.redirect 会一直抛出异常而不是进行重定向。为什么?我们如何阻止这种情况?
【问题讨论】:
标签: asp.net exception response.redirect