我有一个在授权期间使用 Response.Redirect 的 ASP.NET MVC (5.2.3) 应用程序(我知道这很糟糕,我打算解决这个问题,但请幽默我的问题)。我们知道这会抛出一个,但在 IIS 需要处理异常之前ThreadAbortException
,管道会捕获(并且可能是s)这个。ResetAbort()
将我的构建服务器更改为使用 VS2015 版本的 MSBuild(而不是 2013 版本)构建后,不再处理这些异常,并且在调用 5 个 Response.Redirect 实例后我的 appdomain 关闭(根据 appdomain 设置 - 5 个未处理5 分钟内出现异常 == 禁用应用程序池)。
我不明白为什么简单地更改编译器版本会改变运行时的行为,从而不再处理 ThreadAbortExceptions。我没有更改 .net 框架版本 - 它保持在 4.5。
我有许多解决方案可以尝试(升级框架版本,不要调用重定向等),但我很难弄清楚这实际上是如何发生的。