Response.Redirect() ThreadAbortException 间歇性冒泡过高

2024-04-09

我(现在)明白 Response.Redirect() 和 Response.End() 抛出 ThreadAbortException 作为终止当前处理线程以模拟 ASP Classic 的 Response.End() 和 Response.Redirect 方法的行为的一种昂贵的方法。

However.

在我们的应用程序中,异常冒泡似乎间歇性过高。例如,我们有一个从客户端 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 会一直抛出异常,而不是进行重定向。为什么?我们如何阻止这种情况?


您是否尝试过重载默认的重定向方法而不结束响应?

if(!loggedin) { 
     Response.Redirect("login.aspx", false); 
} 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Response.Redirect() ThreadAbortException 间歇性冒泡过高 的相关文章

随机推荐