2014-03-05 2 views
4

VS 2012, IIS 7.5를 사용하여 ASP.NET MVC4로 인터넷 응용 프로그램을 개발하고 있습니다. 같은 양식 인증을 사용하고 있습니다. 내 웹 설정의 설정은 다음과 같습니다.ASP.NET MVC 4 세션 시간 초과

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/Login" timeout="30" name="userInfo" slidingExpiration="true" enableCrossAppRedirects="false" protection="All" > 
    <credentials passwordFormat="Clear"/> 
    </forms> 
</authentication> 

하지만 20+ 분 내 세션 개체 중 하나가 null 없다는 오류를 얻고 후 내 응용 프로그램을 새로 고칠 때 IIS에서 설정 유휴 시간 초과 (분) 20입니다. 30 분 후에 앱을 새로 고침하면 정상적으로 작동하여 로그인 페이지로 리디렉션됩니다. 자격 증명을 입력하면 해당 페이지로 올바르게 이동합니다.

20 분 후에 왜 오류가 발생하는지 이해하지 못합니다! (내가 아는 한 IIS 유휴 시간 설정입니다). 도와주세요.

감사합니다.

+0

방금 ​​서버 또는 SQL에 보관 된 세션 변수를 사용하고 있습니까? 귀하의 세션이 만료 될 가능성은 있지만 귀하의 로그인은 추가로 10 분 동안 유효하므로 30시 후까지 리디렉션되지 않습니다. 시도 http://stackoverflow.com/questions/4605161/session-variables-timeout-in -asp-net-app – FGhilardi

답변

5

폼 인증은 세션 시간 초과를 처리하지 않습니다. 대신 세션 상태 시간 초과를 조정하려고합니다. MSDN에 대한 자세한 내용은 web.config의 sessionState 요소에 대한 기사가 있습니다.

세션 상태를 사용하려면 다른 공급자를 읽어보십시오. 단일 웹 서버를 넘어 애플리케이션을 확장하려는 경우 InProc과 다른 세션 공급자를 사용해야합니다. out-of-process 세션 공급자를 사용하려면 개체를 직렬화 할 수 있어야하는데 나중에 변경 될 수 있습니다. 나중에 두통을 피하려면 변경하십시오.

+1

MV3을 4로 옮겼습니다. 연결 후 5 분 후에 세션이 종료 되었습니까? – MBen