在ASP.NET的sessionState的三種屬性
摘要:在ASP.NET的sessionState的三種屬性
ASP.NET的WebConfig提供三種針對Session狀態存取的屬性..
1.InProc(預設):也就是將Session保存在Process裡面(IIS5是aspnet_wp.exe,而IIS6是W3wp.exe),這個Process算是不穩定,在某些事件發生時,Process會重新啟動。在web.config的設定:
1 <configuration>
2 <system.web>
3 <sessionState mode="InProc"
4 timeout="20"
5 cookieless="UseCookies">
6 </sessionState>
7 </system.web>
8 </configuration>
2 <system.web>
3 <sessionState mode="InProc"
4 timeout="20"
5 cookieless="UseCookies">
6 </sessionState>
7 </system.web>
8 </configuration>
2.StateServer:本機的一個服務,可以在系統服務裡看到服務名為ASP.NET State Service的服務,預設下是不啟動的。當我們設定mode為StateServer之後,要在服務那邊手動將該服務啟動喔。在web.config的設定:
1 <configuration>
2 <system.web>
3 <sessionState mode="StateServer" timeout="500"
4 stateConnectionString="tcpip=127.0.0.1:42424"/>
5 </system.web>
6 </configuration>
2 <system.web>
3 <sessionState mode="StateServer" timeout="500"
4 stateConnectionString="tcpip=127.0.0.1:42424"/>
5 </system.web>
6 </configuration>
3.SQLServer:將 session 存於 SqlServer 資料庫中,必需要有ASPState資料庫,所以要使用 aspnet_regiis.exe 工具來新增,步驟如下:
(1.)新增 ASPState 資料庫:進入命令模式視窗輸入 aspnet_regsql.exe -S ServerName -E -ssadd -sstype p
(2.)如果要移除:進入命令模式視窗輸入aspnet_regsql.exe -S ServerName -E -ssremove
(3.)在web.config的設定:
1 <configuration>
2 <system.web>
3 <sessionState mode="SQLServer"
4 sqlCommandTimeout="30"
5 sqlConnectionString="data source=localhost;Integrated
6 Security=SSPI">
7 </sessionState>
8 </system.web>
9 </configuration>
2 <system.web>
3 <sessionState mode="SQLServer"
4 sqlCommandTimeout="30"
5 sqlConnectionString="data source=localhost;Integrated
6 Security=SSPI">
7 </sessionState>
8 </system.web>
9 </configuration>