2011-11-06 1 views
2

ASP.NET 웹 사이트에서 우리는 SQL Server에 세션을 저장하고 있습니다. 세션이 자주 재활용된다는 것 외에는 모두 잘 작동합니다. 시간 초과 기간은 30 분으로 설정되어 있지만 몇 분 안에 재활용됩니다. 우리는 전용 서버와 '클래식'응용 프로그램 풀에서 실행되는 웹 사이트를 운영합니다. 나는이 문제를 많이 조사했지만 만족스러운 답을 찾지 못했습니다. 어떤 도움이라도 대단히 감사하겠습니다.ASP.NET 세션 재생

참고 : 주로 viewstate를 많이 사용하는 페이지에서 발생합니다. 세션 리사이클을 통해 viewstate 링크가 있는지 궁금합니다.

+0

세션 상태 SQL 데이터베이스는 어디에서 어떻게 실행됩니까? – stefan

답변

2

우리는 웹 팜 (클라이언트에 서비스하는 둘 이상의 웹 서버) 또는 웹 가든 (응용 프로그램 풀에서 둘 이상의 작업자 프로세스)이있을 때이 문제가 발생했습니다.

웹 팜이있는 경우 모든 웹 서버에 the same machine key이 있고 모든 인스턴스에 exact same application path이 있어야합니다.

웹 정원이있는 경우 최대 작업자 프로세스를 1로 다시 놓아 문제가 해결되는지 확인하십시오.

IIS 설정을 확인하는 동안 응용 프로그램 풀이 정기적으로 재활용되지 않도록해야합니다. 최대 메모리 양을 초과 한 경우

1) 개인 메모리 제한합니다 (응용 프로그램 풀 리셋)

2) 일정한 시간 간격 재활용 (:이 응용 프로그램 풀에 지정된 다음 중 하나 때문에 할 수 있습니다 응용 프로그램 풀은 지정된 시간 (분) 후에 자동으로 리사이클됩니다 (기본값은 1740, 특정 시간).

3) 유휴 시간 제한 (응용 프로그램 풀이 자동으로 종료되기 전에 경과 할 수있는 비활성 시간 (분)).

또한 응용 프로그램 풀이 충돌하거나 그렇지 않으면 재활용되는 보고서에 대한 이벤트 로그를 확인해야합니다.

업데이트 :

추가 생각 : 당신은 안티 바이러스 또는 백업 소프트웨어와 같은 응용 프로그램이 있으면

, 응용 프로그램의 bin 디렉토리 및 수정을 모니터링하거나 같은 같은 속성을 (변경 백업 플래그 또는 타임 스탬프)을 web.config 파일이나 해당 디렉토리에 저장하면 응용 프로그램이 다시 재생됩니다.

+0

죄송 합니다만, 우리는 웹 농장이나 웹 가든을 사용하고 있지 않다는 것을 잊었습니다. 최대 작업자 프로세스는 이미 1로 설정되어 있습니다. 개인 메모리 제한은 0KB (기본적으로)이며 또한 유휴 시간 제한을 0으로 설정했습니다 – OBA

+0

추가 답변으로 업데이트 됨 –