[ASP.NET]Session State to SQLServer (aspnet_regsql,web.config)

  • 3329
  • 0
  • 2014-01-17

介紹如何將ASP.NET的SESSION STATE儲存到SQLSERVER裡面

目的:將Session State儲存到SQLServer的資料庫之中
步驟:

1.以系統管理員模式執行cmd

2.切換到
C:\Windows\Microsoft.NET\Framework\v4.0.30319\

補充一下,如果你的電腦是64位元作業系統,就切換到Framework64
資料夾

3.執行
aspnet_regsql.exe -S yourServerName -U UserAccount -P Password -ssadd -sstype p
上一行指令會自動建立AspState資料表
接下來再將資料庫的帳號密碼寫在web.config裡面之後,就可以將Session State儲存在SQLServer的ASPState資料表中

ps.將來若是不需要將Session State存在SQLServer的時候,執行
aspnet_regsql.exe -S YourServerName -U UserAccount -P Password -ssremove -sstype p
便可移除

4.修改Web.config的sessionState如下
<sessionState mode="SQLServer" sqlConnectionString="data source=ServerName;user id=sa;password=ABCD_EFG" cookieless="false" timeout="30" />

5.補充一下,在第三步驟的時候,也可以自訂資料庫名稱,主要是-SSTYPE c還有-d YENDB,就是資料庫自訂還有限定為YENDB的意思

C:\Windows\Microsoft.NET\Framework\v4.0.30319>aspnet_regsql.exe -S MyDBName -U sa -P passwd -ssadd -sstype c -d YENDB

web.config也要加個屬性allowCustomSqlDatabase = "true",還有connectionstring註明用哪一個database

 

<system.web>
<sessionState mode="SQLServer" sqlConnectionString="data source=ServerNmae;user id=sa;password=passwd;database=yourDBName;" cookieless="false" timeout="30" allowCustomSqlDatabase="true" />
</system.web>

參考以下高手撰寫的網頁可獲得更詳細資訊:
如何設定與啟用 ASP.NET 的 SQLServer 工作階段狀態模式
HOW TO:設定 SQL Server 以儲存 ASP.NET 工作階段狀態

ASP.NET 4.0 使用 SQL Server 儲存 session 資料的改進