Od czasu do czasu otrzymuję ten błąd.
Znalazłem ten link, który dość dobrze podsumowuje to, co udało mi się znaleźć w Google: http://www.wacdesigns.com/2009/02/03/session-state-has-created-a-session-id-but- nie można-zapisać-ponieważ-odpowiedź-została-już-opróżniona-przez-aplikację /
Zasadniczo mówi, że możesz spróbować ustawić ustawienia konfiguracji sieci Web DisplayWhenNewSession lub spróbować uruchomić stan sesji, pobierając Session.SessionID w Session_OnStart.
Ale czy ktoś:
a) mieć na to wyjaśnienie
lub nawet lepiej, b) mieć wypróbowaną i przetestowaną poprawkę
Zdaję sobie sprawę, że nie mogę opróżnić odpowiedzi po zrobieniu czegokolwiek, co wpłynęłoby na nagłówek odpowiedzi http. Gdybym to zrobił, spowodowałoby to błąd za każdym razem, ale jest to przerywane. SessionID z pewnością powinien zostać automatycznie utworzony przez ASP.NET na początku odpowiedzi strony, przed czymkolwiek na stronie ASPX lub Page_Load (gdzie są wywoływane wszystkie moje opróżnienia).
Aktualizacja: Po namyśle zdaję sobie sprawę, że dzieje się tak podczas przesyłania strumieniowego pliku do przeglądarki. Większość przeglądarek to w rzeczywistości boty wyszukiwarek. Mogę odtworzyć ten błąd, rozpoczynając pobieranie, a następnie zamykając przeglądarkę, więc prawdopodobnie przeglądarki nie czekają na zakończenie pobierania przed anulowaniem operacji pobierania. Widziałem to również na innych, zwykłych stronach, ale w 99% przypadków są to strony pobierania.