2016年8月4日 星期四

在ASP.NET的sessionState的三種屬性


from: https://dotblogs.com.tw/boei/2010/07/06/16414
摘要:在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>



沒有留言: