Различия между Response.End() и Response.Flush()

У меня такой код:

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

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

Ответы

Ответ 1

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.