ASP.NET的sessionState的三種屬性
InProc(預設):也就是將Session保存在Process裡面(IIS5是aspnet_wp.exe,而IIS6是W3wp.exe),這個Process算是不穩定,在某些事件發生時,Process會重新啟動。在web.config的設定:
<configuration>
<system.web>
<sessionState mode="InProc"
timeout="20"
cookieless="UseCookies">
</sessionState>
</system.web>
</configuration>
StateServer:本機的一個服務,可以在系統服務裡看到服務名為ASP.NET State Service的服務,預設下是不啟動的。當我們設定mode為StateServer之後,要在服務那邊手動將該服務啟動喔。在web.config的設定:
<configuration>
<system.web>
<sessionState mode="StateServer" timeout="500"
stateConnectionString="tcpip=127.0.0.1:42424"/>
</system.web>
</configuration>
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的設定:
<configuration>
<system.web>
<sessionState mode="SQLServer"
sqlCommandTimeout="30"
sqlConnectionString="data source=localhost;Integrated
Security=SSPI">
</sessionState>
</system.web>
</configuration>
from:http://www.dotblogs.com.tw/boei/archive/2010/07/06/16414.aspx