일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- ASP
- c#
- IIS
- Winform
- aspnet
- windows
- 단축키
- 태그를 입력해 주세요.
- microsoft
- 마이크로소프트
- DataGrid
- MSSQL
- oracle
- MS
- 오라클
- SSRS
- 자바스크립트
- Excel
- 윈폼
- attr()
- 윈도우
- javascript
- 리포팅서비스
- 이클립스
- 프로시저
- replace()
- 비주얼스튜디오
- 엑셀
- jQuery
- CONVERT()
- Today
- Total
DJ메탈짱™의 Free Style
[ASP.NET] 3종류의 세션 상태 저장 방법 본문
ASP.NET에서는 세션 데이터가 저장되는 곳을 외부 서버로 지정할 수 잇다.
세션 상태를 외부에 저장하면 세션 상태를 저장하는 메모리가 ASP.NET 프로세스 내에
있지 않으므로 장애로 인해 웹 애플리케이션을 재부팅 하더라도 복구가 가능하다. 또한 데이터가 차지하는 메모리에 대한 부담을 덜 수 있고 웹 애플리케이션의 안정성이 향상된다.
Web.config 에서 세션상태 관리를 설정하는 섹션은 <sessionState>다.
<sessionState>섹션특징
mode 상태를 저장할 위치를 지정한다. Off:세션 상태를 저장하지 않는다.
InProc : 세션 상태가 로컬에 저장된다.
StateServer : 세션 상태가 원격 서버에 저장된다.
SQLServer : 세션 상태가 SQL Server에 저장된다.
cookieless 클라이언트 세션을 식별하는 데 쿠키를 사용할지 여부를 지정한다.
true : 쿠키를 사용하지 않는다. 대신 URL에 세션을 식별할 수 있는 문자열을 포함.
false : 쿠키를 사용한다.
기본값은 false.
timeout 세션 타임아웃 시간(분 단위)을 지정한다. 기본값은 20.
stateConnectionString 세션 상태가 원격으로 저장되는 서버 이름과 포트를 지정한다.
sqlConnectionString SQL Server 의 연결 문자열을 지정한다.
----------------------------------------------------------------------------------------
mode
◆Inproc
세션정보를 ASP.NET 프로세스의 메모리로 저장된다. 이 모드는 세션 상태를 내부 메모리로 저장하기 때문에 처리 속도가 가장 빠르다는 장점이 있다. 그러나 메모리 관리나 안정성면에서는 다른모드보다 떨어진다.
◆StateServer
ASP.NET 세션정보를 State Service 라는 별도의 애플리케이션에 저장한다. State Service 는 ASP.NET의 세션 정보를 관리해주는 서비스다. 세션 정보를 외부에 저장하면 웹 서버가 다운되더라도 사이트에 접속 중인 사용자의 세션 정보는 별도로 관리되기 때문에 웹서버가 가동되면 기존의 세션 정보를 다시 사용할 수 있다.
StateService 애플리케이션 가동 방법
[시작]->[프로그램]->[관리도구]->[서비스] 서비스 관리자 실행
[ASP.NET State Service] 시작 or 자동으로 설정
Web.config 상에 설정
<sessionState
mode = "StateServer"
stateConnectionString="tcpip=127.0.0.1:42424"
/>
◆SQLServer
ASP.NET 세션 정보를 MS SQL Server로 저장한다. StateServer 모드와 비교해서 처리 속도는 좀 떨어지지만 좀더 안정적으로 세션 정보가 관리된다는 장점이 있다.
SQLServer 모드로 세션 정보를 저장하려면 먼저 세션정보를 관리하는데 필요한 테이블과 저장 프로시저를 생성해 주어야 한다. 이를 위한 스크립트 파일이
InstallSqlState.sql (위치 : C:\<시스템디렉토리>\Microsoft.NET\Framework\<버전번호>\ )이 파일의 스크립트를 SQL 쿼리 분석기를 이용해 실행하면 세션을 관리할 테이블과 저장 프로시저가 생성된다. 실행후 생성되는 ASPState라는 데이터베이스는 세션 정보를 관리할 저장 프로시저를 가지고 있다. 그러나 ASPState 데이터 베이스에 세션정보가 저장되지는 않는다. 실제로 세션정보가 저장되는 곳은 tempdb 데이터 베이스의 ASPStateTempApplications 테이블과 ASPStateTempSessions 테이블이다.
Web.config 상에 설정
<sessionState
mode = "SQLServer"
sqlConnectionString="data source=127.0.0.1;user id=sa;password=xxxx"
/>
출처 : https://msdn.microsoft.com/ko-kr/library/ms178586(v=vs.100).aspx
'일(job) > MS(Microsoft)' 카테고리의 다른 글
[ASP.NET] Repeater vs DataList vs GridView (0) | 2015.11.12 |
---|---|
[ASP.NET] Failed to Access IIS Metabase (0) | 2015.11.12 |
[ASP.NET] ViewState의 장단점 (0) | 2015.11.11 |
[ASP.NET] Trace 추적정보 확인 (0) | 2015.11.11 |
[ASP.NET] DataGrid 이벤트 (0) | 2015.11.11 |