2011-12-16 2 views
0

매우 이상한 문제가 있습니다. 사실 저는 ASP.NET에서 C#을 사용하여 웹 응용 프로그램을 개발했습니다. 내 응용 프로그램은 두 부분으로 나뉩니다. 하나는 관리자 용이고 다른 하나는 사용자 용입니다. 로컬 서버에서 응용 프로그램을 실행할 때 제대로 작동하지만 원격 서버에서 호스트 할 때 이상한 문제에 직면합니다. 문제는 애플리케이션을 탐색하거나 버튼 또는 링크 버튼을 클릭 할 때 가끔 로그인 페이지로 리디렉션된다는 것입니다. 나는 그 문제가 무엇인지 이해하지 못하고있다. 나는 이런 식으로 각 페이지에 세션을 확인하십시오예기치 않게 세션 시간 초과가

if (Session["admin"] != null) 
    { 
     // do some thing. 
    } 
    else 
    { 
     Response.Redirect("AdminLogin.aspx"); 
    } 

그리고 web.config 파일 <sessionState mode="InProc" timeout="10000"></sessionState>에서 세션 시간을 설정하지만 여전히 나는이 문제에 직면하고있다. 그래서 어느 누구도 나를 도울 수 있습니까? 감사합니다. .

+0

정말 시간 초과 문제입니까? 관리자 값이 어디에서 대체되지 않습니까? –

+0

호스트 서버가 응용 프로그램 풀을 재활용하고있을 수 있습니다. 공유 호스팅입니까? –

+0

여기서 세션에 값을 추가하고 세션에서 값을 제거하십시오. – sikender

답변

2

InProc 세션을 사용하는 경우 비활성 상태 (IIRC, 기본값은 20 분)로 인해 응용 프로그램 풀이 시간이 초과되었을 수 있습니다. 이러한 상황이 발생하면 IIS 프로세스가 종료되고 세션 상태가 메모리에 남아 있기 때문에 세션 상태가 손실됩니다.

해결 방법은 SQL Server 기반 세션 상태 또는 State Server로 전환하거나 AppPool 유휴 시간 제한 (및 동일한 문제를 일으킬 수있는 재활용)을 사용하지 않도록 설정하는 것입니다.

관련 문제