2010-08-18 7 views

답변

4

세션은 서버에 있습니다. 브라우저가 충분히 오래 닫혔거나 오래 사용되지 않았거나 쿠키가 포함되지 않은 새로운 요청이 도착하거나 쿠키가 지나치게 과거의 세션 ID를 참조하면 세션이 만료됩니다 (기본 제한 시간은 20 분입니다).).

연결이없는 경우 세션에서 결정되지 않은 순간에 또는 프로그램에서 .Abandon을 세션에서 호출하면 해당 세션이 메모리에서 제거됩니다.

세션을 사용할 수 없거나 시간이 초과되어 세션이 삭제 된 경우 새 세션 개체가 만들어집니다. 이것이 브라우저 요청의 결과 일 때 Session_End 이벤트는 global.asax 파일에서 트리거됩니다.

참고 : 세션이 시간 초과되고 지워지는 실제 방법은 다릅니다. 즉, inproc 세션이 삭제되고 Session_Timeout이 트리거됩니다. Out-of-proc 세션은 상태 서버 나 SQL 서버에서 삭제되고 파괴됩니다. 후자의 경우, 저장 프로시 저는 정기적으로 호출하여 정리합니다. 저장 프로시 저는 서버에서 활동이있을 때만 호출됩니다. 즉, 세션은 (데이터베이스) 메모리에서 20 분 이상 지속될 수 있지만 다음 액세스에서는 파괴됩니다.

+0

브라우저를 닫을 때 Session_Timeout 이벤트가 트리거되는 위치와 방법은 무엇입니까? – Bala

+0

@Bala : 브라우저가 닫혀있을 때 트리거되지 않으며, HTTP는 상태 비 저장입니다. 그러나 세션은 얼마 동안 지워질 것입니다. 나는 그것이 왜 그런지에 대한 링크로 내 게시물을 업데이트 할 것입니다. – Abel

+1

@Bala : 사실 모호함과 모호함을 없애기 위해 내 대답을 다시 작성했지만, 아직 명확하지 않은 부분이 있는지 물어 봅니다. – Abel

1

웹 서버 (예 : IIS)에 정의되어 있습니다. 일반적인 기본값은 마지막 액세스 이후 약 20 분 (즉, 해당 세션에 대한 웹 요청)입니다. 이 시점에서 세션이 지워 지므로 앱에서 쿠키 또는 서버 측 상태 중 하나를 사용하여 다른 사용자가 방문을 통해 경험을 원활하게 처리 할 수 ​​있도록해야합니다.

+0

기본값은 20 분입니다 .-) – Abel

+0

감사합니다. 업데이트 됨. (나는 ADO.NET 명령 타임 아웃을 생각하고 있었다 ...) –

+0

세션이 어떻게 지워 졌는가? 어떤 이벤트가 발생하거나 브라우저 속성입니까? – Bala

1

브라우저는 임시 쿠키를 삭제하고 서버는 마지막 액세스 이후 미리 정해진 시간 후에 세션 데이터를 삭제합니다.

+0

쿠키는 웹 서버의 세션과 별도로 고유 한 만료 세부 정보가 있습니다. –

+0

예 및 세션 추적에 사용되는 쿠키에는 만료 날짜/시간이 주어지지 않으며 브라우저가 닫히 자마자 만료됩니다. http://en.wikipedia.org/wiki/HTTP_cookie – Ashley

1

그렇습니다. 서버가 시간 초과 될 때까지 서버에서 계속 실행됩니다 (일반적으로 20 분). 그러나 세션 쿠키를 사용하여 브라우저에 보관되므로 브라우저가 닫히면 만료되며 사용자는 다시 해당 세션에 다시 연결할 수 없습니다.

관련 문제