我们可以使用Response.Flush()而不是Response.End()

use*_*509 3 c# asp.net response.redirect response httpcontext

Response.End()生成ThreadAbortException.

HttpContext.Current.ApplicationInstance.CompleteRequest它代替它并不能解决问题.

那么,我们可以使用Response.Flush()而不是Response.End()

Ari*_*tos 10

Response.Flush()被发送给浏览器的是缓冲,但不会停止页面的处理,因此它会继续下一步骤的执行.

可以Response.End()做的是在asp.net页面生命周期中停止下一个函数调用的执行步骤. http://msdn.microsoft.com/en-us/library/ms178472.aspx

这就是为什么它需要抛出异常,抛出一系列调用的循环.

另一种选择是,Response.Close()但这也不会停止执行步骤,如果您尝试在与浏览器关闭后发送内容,可能还有其他错误.如果你这样做,Response.Close()你还需要Flush()在调用它之前做,否则浏览器会得到不可预测的数据.

您还可以阅读:重定向到endResponse为真的VS CompleteRequest和安全线程的页面