關於 Session 存放的方式分為下列幾種
1.Off - 不使用
2.InProc - 存放在 Web 伺服器的記憶體中(Default)
3.StateServer - 存放在稱為 ASP.NET 狀態服務的個別處理序中
4.SQLServer - 儲存在 SQL Server 資料庫中
5.Custom - 自訂儲存提供者(這裡不討論)
Session 相關設定,可在 web.config 中宣告
3 |
<sessionState mode= "InProc" |
5 |
cookieless= "UseCookies" > |
StateServer
將 session 存於指定的狀態伺服器,Will 保哥有兩篇說的非常清楚
如何讓 ASP.NET 使用 Session 資料時不要再自動消失
如何讓【ASP.NET 狀態服務】開放遠端連接
SqlServer
將 session 存於 SqlServer 資料庫中,必需使用 aspnet_regiis.exe 工具
1.新增 ASPState 資料庫:進入命令模式視窗輸入
1 |
aspnet_regsql.exe -S ServerName -E -ssadd -sstype p |
會顯示提示資訊且會多一個用來記錄 Session 的資料庫(ASPState)


2. 移除 ASPState 資料庫:進入命令模式視窗輸入
1 |
aspnet_regsql.exe -S ServerName -E -ssremove |

web.config 要做相關修正
3 |
<sessionState mode= "SQLServer" |
5 |
sqlConnectionString= "data source=localhost;Integrated Security=SSPI" > |
參考文件
http://msdn.microsoft.com/zh-tw/library/ms178586(VS.80).aspx