티스토리 뷰

오류 유형은 아래의 웹서버 로그와 같이 “세션ID 가 생성 되었지만, Response 가 Flushed 되어 저장할 수 없다”.

Session state has created a session id, but cannot save it because the response was already flushed

이 현상은 다음의 경우의 수를 모두 만족할 경우 발생하게 된다.

  • 웹서버(IIS) 가 리사이클링 되고,

  • 웹서버에게 첫 요청이 가고,

  • 코드에서 Session 속성을 사용하기 전이고,

  • 서버 코드에서 Response 를 Flush 하고,

  • 웹브라우저가 아닌, 네트워크 라이브러리를 통해 호출을 하고,

  • Global.asax.cs 의 Session_Start 이벤트가 발생할 때


분석을 해보면 (MSDN 에서 ASP.NET Application Page LifeCycle(영문)을 참고), PreRendering 단계 이후에 SavePageStateTo 를 수행하는 것을 알 수 있다. 따라서 인터넷을 통해 찾은 해결 방법이 Session 속성의 객체를 한 번 호출해 주는 것으로 이런 현상을 제거할 수 있다.

댓글