从Response.redirect引发的ThreadAbortException未被Application_Error

本文关键字:未被 Application Error ThreadAbortException Response redirect | 更新日期: 2023-09-27 18:27:19

我有一些代码正在调用抛出ThreadAbortExceptionResponse.Redirect。我可以看到它发生在调试器中,但没有调用Application_Error方法。如果IF5在异常中断后,代码将继续。

如果我故意在Response.Redirect之前抛出一个异常,它将通过Application_Error方法。

所以我不明白为什么ThreadAbortException没有以同样的方式处理。这也是我们生产基地的困境。我可以看到ThreadAbortExceptions发生在开发环境中,我预计它们会发生在生产中,但没有任何线索。生产运行良好,可能是因为我没有看到ThreadAbortExceptions像我预期的那样处理。

如果有人能帮助解决可能发生的事情,我将不胜感激。

从Response.redirect引发的ThreadAbortException未被Application_Error

ThreadAbortException基本上是中止线程的内部信号。这是一个有点特殊的例外-它不能被捕获(它总是会自动重新抛出),而且它不会关闭应用程序。

在您的情况下,这是由您使用Response.Redirect引起的——每当您使用结束请求的变体时,它都会这样做。这基本上是在不执行请求其余部分的情况下缩短请求并发送重定向。通常有更好的方法来重定向,但这并没有真正的伤害。