Можем ли мы использовать Response.Flush () вместо Response.End ()

c# asp.net response httpcontext response.redirect

16135 просмотра

3 ответа

Response.End()генерирует ThreadAbortException.

Использование HttpContext.Current.ApplicationInstance.CompleteRequestвместо этого не решает проблему.

Итак, можем ли мы использовать Response.Flush()вместоResponse.End()

Автор: user1509 Источник Размещён: 17.05.2019 02:46

Ответы (3)


10 плюса

Решение

Он Response.Flush()отправляет в браузер содержимое буфера, но не останавливает обработку страницы, поэтому он продолжит выполнение следующих шагов.

Что Response.End()нужно сделать, это остановить выполнение шагов при следующем вызове функции в жизненном цикле страницы asp.net . http://msdn.microsoft.com/en-us/library/ms178472.aspx

И именно поэтому нужно бросить исключение, чтобы выкинуть из цикла серию вызовов.

Одной из альтернатив является, Response.Close()но это также не останавливает выполнение шагов, и, возможно, у вас есть другая ошибка, если вы пытаетесь отправить что-то после закрытия соединения с браузером. если вам нужно, Response.Close()вы должны сделать это Flush()непосредственно перед вызовом, иначе браузер получит непредсказуемые данные.

Вы также можете прочитать: Перенаправить на страницу с endResponse для истинного VS CompleteRequest и поток безопасности

Автор: Aristos Размещён: 31.05.2012 07:41

4 плюса

Используйте условие перед загрузкой файла Response.IsClientConnected-

if (Response.IsClientConnected)
 {
    Response.Clear();
    Response.ClearContent();
    Response.ClearHeaders();
    Response.ContentType = "Application/pdf";
    Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);
    Response.TransmitFile(Server.MapPath(@"yourpath" + fileName));
    Response.Flush();
    Response.Close();
  }

Это работает для меня хорошо после долгой борьбы. Я надеюсь, что это работает и для вас.

Автор: Viishnuu Размещён: 11.06.2013 07:12

0 плюса

Нет! Ты не можешь! Вы можете

Response.SuppressContent = true;
Автор: Pit J Размещён: 13.03.2019 12:21
Вопросы из категории :
32x32