每个Response.End()
和CompleteRequest()
的优势和劣势是什么?我应该在哪里和不应该使用它们?我找了Q,但我没有得到正确答案。
答案 0 :(得分:30)
HttpResponse.End
将输出缓冲区刷新到客户端并终止当前请求处理线程(这很糟糕),而HttpApplication.CompleteRequest
告诉ASP.NET立即跳过ASP.NET中的所有未来阶段管道并直接跳转到EndRequest步骤(这也会引发HttpApplication.EndRequest
事件)。然后请求线程继续进行正常的生命周期结束清理。
所以,Response.End
就像一个弹射器座位:它很快结束了事情,但意味着你失去控制,可能会不必要地苛刻。而CompleteRequest
就像在最近的机场紧急降落一样。