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