일(job)/MS(Microsoft)
[ASP.NET] Session Mode
뽀&쏭
2020. 12. 25. 15:53
<sessionState mode="Off|InProc|StateServer|SQLServer"
cookieless="true|false"
timeout="number of minutes"
stateConnectionString="tcpip=server:port"
sqlConnectionString="sql connection string"
stateNetworkTimeout="number of seconds"/>
<필수 특성>
특성옵션설명
mode | 세션 상태를 저장할 위치를 지정합니다. | |
Off | 세션 상태가 해제되었음을 나타냅니다. | |
InProc | 세션 상태가 로컬에 저장되었음을 나타냅니다. | |
StateServer | 세션 상태가 원격 서버에 저장되었음을 나타냅니다. | |
SQLServer | 세션 상태가 SQL Server에 저장되었음을 나타냅니다. |
선택적 특성
특성옵션설명
cookieless | 클라이언트 세션을 식별하는 데 쿠키가 없는 세션을 사용할지 여부를 지정합니다. | |
true | 쿠키가 없는 세션이 사용되도록 지정합니다. | |
false | 쿠키가 없는 세션이 사용되지 않도록 지정합니다. 기본값은 false입니다. | |
timeout | 중단되기 전에 세션이 유휴 상태를 유지할 수 있는 시간(분 단위)을 지정합니다. 기본값은 20입니다. | |
stateConnectionString | 세션 상태가 원격으로 저장된 서버 이름 및 포트를 지정합니다. 예를 들어, "tcpip=127.0.0.1:42424"를 지정할 수 있습니다. 이 특성은 mode가 StateServer일 때 필수입니다. | |
sqlConnectionString | SQL Server의 연결 문자열을 지정합니다. 예를 들어, "data source=localhost;Integrated Security=SSPI;Initial Catalog=northwind"를 설정할 수 있습니다. 이 특성은 mode가 SQLServer일 때 필수입니다. | |
stateNetworkTimeout | StateServer 모드를 사용하여 세션 상태를 저장할 때 세션이 중단되기 전에 웹 서버와 상태 서버 간의 TCP/IP 네트워크 연결이 유휴 상태를 유지할 수 있는 시간(초)을 지정합니다. 기본값은 10입니다. |
<설명>
StateServer 모드를 사용하려면
- ASP.NET 상태 서비스가 세션 상태 정보를 저장할 원격 서버에서 실행 중인지 확인합니다. 이 서비스는 ASP.NET과 함께 설치되며 기본적으로 <Drive>:\systemroot\Microsoft.NET\Framework\version\aspnet_state.exe에 위치합니다.
- 응용 프로그램의 Web.config 파일에서 mode=SQLServer 및 sqlConnectionString 특성을 설정합니다. 예를 들어, stateConnectionString="tcpip=dataserver:42424"를 설정할 수 있습니다.
SQLServer 모드를 사용하려면
- 세션 상태를 저장할 SQL Server가 있는 시스템에서 InstallSqlState.sql(기본 설치 위치는 <Drive>:\systemroot\Microsoft.NET\Framework\version)을 실행합니다. 이렇게 하면 새 저장 프로시저를 포함하는 ASPState라는 데이터베이스가 만들어지고 TempDB 데이터베이스에는 ASPStateTempApplications 및 ASPStateTempSessions 테이블이 만들어집니다.
- 응용 프로그램의 Web.config 파일에서 mode=SQLServer 및 sqlConnectionString 특성을 설정합니다. 예를 들어, sqlConnectionString="data source=localhost;Integrated Security=SSPI;Initial Catalog=northwind"를 설정할 수 있습니다.
<예제>
다음 예제에서는 여러 세션 상태 구성 설정을 지정합니다.
<configuration> <system.web> <sessionState mode="InProc" cookieless="true" timeout="20"/> </sessionState> </system.web> </configuration><요구 사항>
포함된 위치: <system.web>
웹 플랫폼: IIS 5.0, IIS 5.1, IIS 6.0
구성 파일: Machine.config, Web.config
구성 섹션 처리기: System.Web.SessionState.SessionStateSectionHandler
<참고사이트>