Sharepoint 2010에서 Session State 사용.

Sharepoint 2010환경에서 Session을 사용하는 Custom 코드에서 세션과 관련된 오류가 발생합니다.
"Session state can only be used when enableSessionState is set to true"

기본적으로 Sharepoint 2007, 2010에서 세션은SQL Server에 저장됩니다. 세션 서비스를 Enable 시키기
위해서는 아래와 같이 Powershell 명령어를 실행합니다.

 Enable-SPSessionStateService –DefaultProvision 

 세션 서비스가 시작된 이후에는 중앙관리자를 통해 서비스가 시작된 것을 확인할 수 있습니다.

실행 후 Application의 web.config를 확인해 보면 아래와 같이 SQL server를 사용하도록 바뀐 것을 볼 수 있습니다.

 <sessionState mode="SQLServer" timeout="60" allowCustomSqlDatabase="true" sqlConnectionString="Data Source=test;Initial
Catalog=SessionStateService_DB;Integrated Security=True;Enlist=False;Connect Timeout=15" />

Session이 Database에서 관리되기 때문에 만료된 세션은 SQL Agent Job에 의해서 삭제됩니다. 

이 서비스가 실행되어야 만료된 세션에 대해서 삭제가 됩니다.

 

아래와 같이 Agent Job이 등록되어 있는 것을 확인합니다.