Response.Redirect(“XXX”,false)和Page Life Cycle?

时间:2013-09-30 11:03:16

标签: asp.net webforms

由于我使用的效果原因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/

1 个答案:

答案 0 :(得分: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();

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