2013-03-28 142 views

回答

24

HttpResponse.End刷新輸出緩衝區到客戶端並終止當前的請求處理線程,而HttpApplication.CompleteRequest告訴ASP.NET立即跳過ASP.NET管道中的所有未來階段並直接跳到EndRequest步驟(這也會引發。在HttpApplication.EndRequest事件請求線程然後用結束生命的正常清理進行

所以,Response.End就像是一個彈射座椅:很快結束的事情,而是意味着你失去了控制,並可能導致不必要的苛刻而CompleteRequest是。就像在最近的機場緊急降落一樣

+0

所以當我必須使用Response.En d()和當我必須使用HttpApplication.CompleteRequest() – 2013-03-28 08:01:37

+5

理想情況下,你永遠不需要使用。 – Dai 2013-03-28 19:48:37

+3

閱讀[正確使用System.Web.HttpResponse.Redirect](http://blogs.msdn.com/b/tmarq/archive/2009/06/25/correct-use-of-system-web-httpresponse-redirect .aspx) - 'Response.End'是一個有風險的「彈射座椅」...使用**極度**謹慎...... – 2014-08-21 19:43:11