在ASP.NET的sessionState的三種屬性

摘要:在ASP.NET的sessionState的三種屬性

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.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>

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>