Response.End()和CompleteRequest()

时间:2013-03-28 06:45:40

标签: c# request response

每个Response.End()CompleteRequest()的优势和劣势是什么?我应该在哪里和不应该使用它们?我找了Q,但我没有得到正确答案。

1 个答案:

答案 0 :(得分:30)

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

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