Различия между Response.End () и Response.Flush () - PullRequest
19 голосов
/ 19 января 2012

У меня есть код, подобный следующему:

context.HttpContext.Response.Clear();
            context.HttpContext.Response.Write(htmlString);              
            context.HttpContext.Response.End(); 

Но когда страницы загружены, у меня есть закрытый тег html на них.Когда я заменяю Response.End () на Response.Flush (), он работает нормально.В чем разница между Response.End () и Response.Flush ()?

1 Ответ

25 голосов
/ 20 февраля 2012

Response.Flush

Принудительно отправляет все буферизованные выходные данные клиенту. Метод Flush может вызываться несколько раз во время обработки запроса.

Response.End

Отправляет весь текущий буферизированный вывод клиенту, останавливает выполнение страницы и вызывает событие EndRequest.

Вам следует попробовать использовать этот код, если вы не выполняете никакой обработки на странице после Response.Write и хотите прекратить обработку страницы.

    context.HttpContext.Response.Clear();
    context.HttpContext.Response.Write(htmlString);              
    context.HttpContext.Response.Flush(); // send all buffered output to client 
    context.HttpContext.Response.End(); // response.end would work fine now.
...