ASP.NET InProc 세션 상태 모드를 사용하면 세션 데이터가 손실됩니다.
이 문서는 ASP.NET InProc 세션 상태 모드를 사용할 때 세션 데이터가 손실되는 문제를 resolve 데 도움이 됩니다.
원래 제품 버전: ASP.NET
원래 KB 번호: 324772
증상
ASP.NET 웹 애플리케이션에 대한 세션 데이터는 InProc 세션 상태 모드에 대해 임의 간격으로 손실된 것으로 보입니다.
원인
IIS 7.0 이상 버전에서 실행되는 애플리케이션의 AppDomain
경우 클래스 또는 Aspnet_wp.exe 프로세스(또는 W3wp.exe 프로세스)가 재활용되면 세션 상태 데이터가 손실됩니다. 일반적으로 는 AppDomain
다음과 같은 몇 가지 요인에 따라 다시 시작됩니다.
- 다양한 특성(예:
memoryLimit
특성)에는 구성 파일의 섹션에<processModel>
특정 설정이 있습니다. - Global.asax 또는 Web.config 파일이 수정되었습니다.
Bin
웹 애플리케이션의 디렉터리가 수정되었습니다.- 바이러스 검사 소프트웨어가 일부 .config 파일을 터치했습니다.
InProc 세션 모드는 세션 상태가 로컬로 저장됨을 나타냅니다. 즉, InProc 세션 상태 모드를 사용하면 웹 애플리케이션의 에 AppDomain
수명 개체로 저장됩니다. 따라서 IIS에서 실행되는 애플리케이션의 경우 Aspnet_wp.exe(또는 W3wp.exe) 또는 AppDomain
다시 시작할 때 세션 상태가 손실됩니다.
해결 방법
이 문제를 해결하려면 StateServer 또는 SqlServer 세션 상태 모드를 사용할 수 있습니다. ASP.NET 세션 상태 데이터를 저장하기 위한 이러한 다른 방법을 제공합니다. StateServer 및 SqlServer 모드에서는 세션 상태가 웹 애플리케이션의 에 AppDomain
저장되지 않습니다.
참고
요구 사항에 적합한 모드를 결정할 때 각 세션 상태 모드와 관련된 동작 및 문제를 이해하는 것이 중요합니다.
상태
이것은 의도적으로 설계된 동작입니다.
참조
ASP.NET 세션 상태 관리 및 기타 관련 정보에 대한 자세한 내용은 세션 상태를 참조하세요.
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기