2009년 8월 5일 수요일

ASP.NET 에서의 세션 타임아웃 설정의 우선순위(session timeout)


세션 타임 아웃이란 서버와 클라이언트 사이의 연결이 일정시간 일어나지 않는 다면

연결 상태를 잊어버리는 것을 의미합니다

쉽게 말해서 컴퓨터 하다가 장기간 자리를 비우면 웹페이지에서 자동으로 로그아웃 되어 버리는 것이죠

오늘은 ASP.NET에서의 세션 타임 아웃에 관한 우선순위를 알아보죠.


1위: 페이지 설정

우선순위가 가장높은 아이는 바로 페이지에서의 설정입니다.

Form_Load()이벤트에들어가셔서  Session.Timeout=60 이라고 기술하시면

60분동안 세션끊김은 일어나지않습니다.

범위: 그 페이지에서만 유효 합니다.

 

2위: global.asax 설정

두번째는 글로벌환경설정에서의 기술입니다.

 Application_Start메소드에서 Session.Timeout=60 이라고 기술하시면

위와 같이 60분동안 세션 연결이 가능합니다.

범위: 한 세션내에서 유효 합니다.

 

3위: web.config 설정

세번째로 웹닷컴피그 파일이군요.

일반적으로 가장 많이 사용되는 설정입니다.

보통 우리가 아는 대부분의 ASP.NET 싸이트가 여기에 해당하겠죵.

 <system.web>

      ~~~(생략)~~~

        <sessionState mode="InProc" timeout="60" />

 </system.web>

범위:웹싸이트 전역에서 유효합니다.(가장 편리하죠)

 

4위:machine.config 설정

이거는 하나의 웹서버에 두개이상의 웹싸이트가 존재할 경우에나 유효합니다.

한마디로 일반적으로는별 신경안써도 되는 놈들이죠

그래도 혹시나 해서 경로를 적어둡니다.

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG

폴더 밑에 machine.config 파일이 존재합니다.

<sessionState mode="InProc"

     stateConnectionString="tcpip=127.0.0.1:42424"

     stateNetworkTimeout="10" sqlConnectionString="data  

     source=127.0.0.1;Integrated Security=SSPI"cookieless="false"

     timeout="60"/>

이라고 기술해 주시면 60분으로 적용이 됩니다.

오늘은 세션의 타입 아웃에 관해서 알아 보았습니다.

 

  • 위의 4가지를 설정해 주시셔도 세션끊김 현상이 발생 할 수 있습니다.IIS서버의 설정이 기본으로 20분으로 잡혀 있기 때문이죠 그러면 IIS서버를 열어서 설정화면에서 시간을 늘려 주세요
  • 그리고 세션이 모두 살아 있다고 해서 로그아웃이 안되는것도 아니랍니다. 예를 들어서 권한이 없어져도 세션끊김 현상과 같은 증상이 나타납니다. 그렇기 때문에 권한끊김 시간도 확인해 보시는게 좋을듯 합니다.

대한민국 개발자 여러분 홧팅하세용.^^

질문은 블로그 덧글에 달아주시면 감사하겠습니다.(덧글 매일확인)

   

댓글 없음:

댓글 쓰기