2013-10-11 1 views
0

내 세션이 계속 손실되는 라이브 서버에서 호스팅되는 웹 사이트가 있습니다.Application_Start로 인해 세션이 손실 될 수있는 원인은 무엇입니까?

응용 프로그램이 시작될 때와 끝날 때 그리고 세션이 시작되고 끝나는 곳과 응용 프로그램 오류가있는 경우를 확인하기 위해 global.asax에 일부 로깅을 추가했습니다.

내 웹 사이트로 이동하면 로그인 한 후 응용 프로그램이 시작되고 세션이 시작되고 내 이메일과 사용자 ID가 저장됩니다. 그 후 나는 단지 1 분 정도 내 사이트를 돌아 다니며 자동으로 로그 아웃했다. 자동 로그 아웃은 세션이 널 (null)이되어 버린 결과입니다.

다음은 위의 테스트 로그입니다.

[11:4:57:802] Application has started 
[11:4:58:872] Session has started 
[11:4:58:890] Set Email Sessions 
[11:4:59:61] Set PracticeId and PractitionerId Sessions 
[11:6:49:838] Application has started 
[11:6:5:391] Session has ended 
[11:6:5:445] Application has ended 
[11:6:8:208] Session has started 
[11:6:8:338] Abandon Session 
[11:6:8:343] Session has ended 

테스트를 마쳤으며 특정 링크에 문제가 없으며 로컬 호스트에서 사이트를 실행할 때 발생하지 않습니다. 응용 프로그램 시작 마녀가 나는 다음 세션을 null로 가정 가정 해고 때문에 내 세션을 잃게됩니다.

application_start가 임의로 트리거 될 수있는 원인은 무엇입니까?

답변

0

IIS AppPool에는 응용 프로그램의 재활용을 제어하는 ​​구성 옵션이 있습니다. 예를 들어

: 메모리 사용량 임계 값 매일 특정 시간에 초과하는 모든 활동이없는 구성 가능한 시간 후, ... 당신의 AppPool을 구성에서

봐.

자동 로그 아웃은 세션이 null이고 그 다음에 나를 버린 결과입니다.

폼 인증을 사용하는 경우 자동 로그 아웃의 경우 세션 만료로 인해 자동으로 로그 아웃 할 필요가 없습니다. 세션 만료와는 완전히 독립적 인 양식 인증 쿠키가 있습니다.

제대로 설계된 응용 프로그램에서는 영구 저장소 (대개 데이터베이스)에서 세션을로드하여 Session에있는 모든 내용을 간단히 다시 생성 할 수 있습니다.

관련 문제