2013-03-28 2 views
13

Каковы преимущества и недостатки для каждого из Response.End() и CompleteRequest()? где я должен и где я не должен их использовать? Я искал этот Q, но я не получил правильного ответа.Response.End() и CompleteRequest()

ответ

24

HttpResponse.End очищает буфер вывода для клиента и завершает текущую обработку запроса нить, тогда как HttpApplication.CompleteRequest говорит ASP.NET немедленно пропустить все последующие этапы в конвейере ASP.NET и перейти непосредственно к EndRequest стадии (который также повышает .., то HttpApplication.EndRequest события запрос поток переходит с нормальной истекшим сроком очистки

Итак, Response.End подобен эжектором сиденьем: оно быстро заканчивается вещи, но означает, что вы теряете контроль и можете быть излишне суровым в то время как CompleteRequest есть. например, сделать аварийную посадку в ближайшем аэропорту.

+0

Итак, когда я должен использовать Response.En d() и когда я должен использовать HttpApplication.CompleteRequest() –

+5

В идеале вам никогда не понадобится использовать. – Dai

+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' является рискованным« сиденьем эжектора »... используйте с ** предельно ** осторожно ... –

Смежные вопросы