DBA

세션 상태 구성 mode="SQLServer" 본문

[3] Development/ASP.NET

세션 상태 구성 mode="SQLServer"

코볼 2014. 4. 4. 17:33
728x90
반응형
SMALL

C:\Windows\Microsoft.NET\Framework\v4.0.30319 폴더에 있는 aspnet_regsql.exe를 아래와 같은 옵션으로 실행 한다.

 

aspnet_regsql -S [컴이름]\[인스턴스이름] -E -ssadd

(예:C:\Windows\Microsoft.NET\Framework\v4.0.30319>aspnet_regsql -S IST-WHLEE-W7\WHLE
E2012 -E -ssadd)

 

-S : 데이터베이스 서버 이름

-E : 현재의 윈도우 사용자로 데이터베이스에 로그인

-ssadd : 세션 저장 데이터베이스(Session Storage Database)를 추가

 

==================================================================================================

결과)

C:\Windows\Microsoft.NET\Framework\v4.0.30319>aspnet_regsql -S .\WHLEE2012 -E -s
sadd

세션 상태를 추가하기 시작합니다.

...

완료했습니다.

==================================================================================================

 

[컴이름]의 "."은 localhost를 의미 함.

 

그러면 ASPState라는 디비가 생성이 된다.

 

 

그런데 웹 사용자는 데이터베이스인  ASPState에 세션 상태를 쓸수 있어야 하는데 ASP.NET 4.0은 응용 프로그램 풀ID(Application pool identity)를 기본 웹 사용자로 하고 있기때문에 제공ID로는 데이터베이스에 접근하지 못한다. 따라서 웹 사용자 ID를 LocalSystem에서 제공하는 ID로 설정 해야 한다.

 

실행에서 inetmgr

ASP.NET MMC의 연결 창에서 응용 프로그램 풀 선택

ASP.NET 4.0선택 오른쪽 마우스 클릭 고급설정

프로세스 모델 섹션에서 ID의 ApplicationPoolIdentity 옆에 버튼 클릭 LocalSystem 선택

확인

 

 

 

한가지 더하면 StateServer 모드나 SQLServer 모드의 경우

세션 상태로 저장하는 객체는 직렬화 되어야 한다.

클래스 정의 윗 부분에 [Serialization]을 명시 한다.

728x90
반응형
LIST
Comments