2

由于我使用的性能原因,Response.Redirect("XXX", false). 我不希望页面生命周期继续。有什么方法可以同时使用 Response.Redirect("XXX", false)(注意false)和停止页面生命周期。查看性能问题,

http://blogs.msdn.com/b/tmarq/archive/2009/06/25/correct-use-of-system-web-httpresponse-redirect.aspx

http://mvolo.com/fix-the-3-high-cpu-performance-problems-for-iis-aspnet-apps/

4

1 回答 1

3

您始终可以使用 Response.End(),但最简单的方法是简单地传递 true 参数。

Response.Redirect("XXX", true);

或者

Response.Redirect("XXX", false);
Response.End();

编辑: 阅读您帖子的评论后,似乎 Response.End() 也没有用,因为它也会抛出 ThreadAbortException。

然而,这里似乎给出了最好的答案(使用 HttpContext.Current.ApplicationInstance.CompleteRequest 而不是响应结束,但它不会停止页面生命周期):http: //support.microsoft.com/kb/312629/en

Response.Redirect("XXX", false);
HttpContext.Current.ApplicationInstance.CompleteRequest();

如果您不希望出现异常,最好的办法是在代码中优雅地退出。

于 2013-09-30T11:09:32.630 回答