Я периодически получаю эту ошибку.
Я нашел эту ссылку, которая довольно хорошо суммирует то, что мне удалось найти в Google:
http://www.wacdesigns.com/2009/02/03/session-state-has-created-a-session-id-but-cannot-save-it-because-the-response-was-already-flushed-by-the-application/
По сути, это говорит о том, что вы можете попытаться установить параметр веб-конфигурации DisplayWhenNewSession или попытаться запустить состояние сеанса, получив Session.SessionID в Session_OnStart.
Но разве кто-нибудь:
а) есть объяснение этому
или даже лучше, б) иметь проверенное и исправленное исправление
Я понимаю, что не могу сбросить ответ после выполнения каких-либо действий, которые могут повлиять на заголовок ответа http. Если бы я сделал это, это вызвало бы ошибку каждый раз , но это периодически. SessionID, безусловно, должен автоматически создаваться ASP.NET в начале ответа страницы, прежде чем что-либо на странице ASPX или в Page_Load (именно там вызываются все мои сбросы).
Обновление:
Размышляя, я понимаю, что это происходит при потоковой передаче файла в браузер. Большинство браузеров на самом деле являются поисковыми роботами. Я могу воссоздать эту ошибку, начав загрузку, а затем закрыв браузер, поэтому, вероятно, браузеры не ждут завершения загрузки, прежде чем отменить операцию загрузки. Я также видел это на других обычных страницах, но в 99% случаев это страницы загрузки.