C# Response.End()和CompleteRequest()

C# Response.End()和CompleteRequest(),c#,request,response,C#,Request,Response,Response.End()和CompleteRequest()各自的优缺点是什么?我应该在哪里使用它们?我查看了这个,但没有得到正确的答案。HttpResponse.End将输出缓冲区刷新到客户端,并终止当前的请求处理线程(这是错误的),而HttpApplication.CompleteRequest告诉ASP.NET立即跳过ASP.NET管道中未来的所有阶段,并直接跳转到EndRequest步骤(这也会引发HttpApplication.EndRequest事件)。然后,请求线程继续进行正常

Response.End()
CompleteRequest()
各自的优缺点是什么?我应该在哪里使用它们?我查看了这个,但没有得到正确的答案。

HttpResponse.End
将输出缓冲区刷新到客户端,并终止当前的请求处理线程(这是错误的),而
HttpApplication.CompleteRequest
告诉ASP.NET立即跳过ASP.NET管道中未来的所有阶段,并直接跳转到EndRequest步骤(这也会引发
HttpApplication.EndRequest
事件)。然后,请求线程继续进行正常的生命周期结束清理


所以,
Response.End
就像一个弹射座椅:它很快就结束了事情,但意味着你失去了控制,可能会变得不必要的苛刻。然而,
CompleteRequest
就像在最近的机场紧急着陆一样。

所以当我必须使用Response.End()和我必须使用HttpApplication.CompleteRequest()时,理想情况下,你不需要使用任何一种。Read-
Response.End
是一个危险的“弹射座椅”。。。非常小心地使用……这正是我需要的,一个弹射座椅,但我找不到那种方法anywhere@Dai如果不建议使用HttpApplication.CompleteRequest,那么如何正确重定向?不是响应。重定向(url,false);后跟Context.ApplicationInstance.CompleteRequest();正确的方法?