2012-01-18 10 views
4

우리 프로덕션 환경에서 이상한 현상이 발생합니다. 몇 시간마다 응용 프로그램이 Session_End 이벤트로 세션을 종료하고 Application_End 이벤트를 발생시켜 모든 사용자를 강제 종료합니다. 로그에서 모든 사용자 세션은 동일한 밀리 초에 닫힙니다. 테스트 환경에서는이 문제가 발생했지만 드물게 발생했습니다.이를 복제 할 수 없었습니다. 다른 모든 것이 잘되는 것처럼 보이지만이 서버에서 실행되는 다른 응용 프로그램은 정상적으로 작동합니다. 메모리 누수 또는 CPU 과용은 없습니다. 이 응용 프로그램은 ExtJS 버전 3.3, NHibnernate 3.2 및 ASP.NET 4.0을 기반으로합니다. 세션 종료 전에 몇 분 동안 만 작업 한 일부 사용자는 시간 초과 오류처럼 보이지 않습니다. 누구와 비슷한 문제가 발생 했습니까?모든 세션 종료 응용 프로그램 종료 이벤트

+2

은 재활용 응용 프로그램 풀입니까? –

답변

5

응용 프로그램 풀이 재생되고 (따라서 열려있는 세션이 모두 끝나고 응용 프로그램이 끝나는) 몇 가지 이유가 있습니다. 전체 개요는 http://blogs.msdn.com/b/johan/archive/2007/05/16/common-reasons-why-your-application-pool-may-unexpectedly-recycle.aspx을 참조하십시오.

프로덕션 환경에서 비슷한 문제가 발생했습니다. 재사용의 이유는 응용 프로그램 풀을 재활용하도록 만든 각 검사마다 web.config를 사용한 바이러스 스캐너 때문이었습니다. 서버에서 바이러스 스캐너를 비활성화하거나 바이러스 스캐너에서 응용 프로그램 디렉토리를 제외하십시오.

다음 파일을 변경하면 또한 응용 프로그램 풀의 즉시 다시 시작 트리거 :

  • 은 Machine.config
  • 은 Global.asax에
  • 는 bin 디렉토리에
  • 아무것도 그것이 또는이다

    • 의 Web.config 하위 디렉토리

    이 게시물 : http://weblogs.asp.net/scottgu/archive/2005/12/14/433194.aspx는 애플리케이션을 잡는 방법을 제공합니다. 더 자세한 로깅을 제공합니다. 이는 재활용의 원인을 찾는 데 도움이 될 수 있습니다.