Asp.net session mode = stateserver , let session disappear no longer.

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

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s