首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

在 ASP.NET 中使用 SQL Server 儲存 Session 狀態的完整設定教學

     編輯:關於SqlServer

前言

ASP.NET 提供三種 Session 狀態儲存模式:In-Process(預設)、State Server、SQL Server。若您的應用程式部署於 Web 伺服器陣列,或需在應用程式回收時保留 Session 資料,使用 SQL Server 儲存 Session 是最穩健的選擇。本文將逐步說明如何設定。

步驟 1:安裝 SQL Server Session 狀態資料庫結構

執行 .NET Framework 安裝目錄下的 InstallSqlState.sql 腳本,預設路徑如下:

C:\Windows\Microsoft.NET\Framework\v1.0.2914\InstallSqlState.sql

此腳本會在 SQL Server 中建立 ASPState 資料庫及相關儲存程序、資料表。

步驟 2:修改 Web.config 設定 Session 模式

在 <system.web> 區段加入或修改 <sessionState> 元素:

<sessionState 
    mode="SQLServer"
    sqlConnectionString="data source=YourSQLServer;user id=sa;password=YourPassword"
    cookieless="false"
    timeout="20" 
/>
  • mode:必須設為 SQLServer。
  • sqlConnectionString:連接字串,建議使用 SQL 驗證帳號,且該帳號需有 ASPState 資料庫的讀寫權限。
  • cookieless:false 表示使用 Cookie 傳遞 Session ID(預設);true 則使用 URL 嵌入方式。
  • timeout:Session 逾時分鐘數(預設 20)。

步驟 3:驗證與使用

設定完成後,重新啟動應用程式(或修改 Web.config 觸發重啟)。之後您即可像往常一樣使用 Session["Key"] = value 讀寫 Session,資料將自動持久化至 SQL Server。

常見問題排查

  • 連線失敗: 檢查防火牆是否開放 SQL Server 埠(預設 1433)、連接字串帳密是否正確、SQL Server 是否允許遠端連線。
  • 權限不足: 確認連線帳號擁有 ASPState 資料庫的 db_owner 或至少 EXECUTE 相關儲存程序的權限。
  • 效能考量: 高流量網站建議將 ASPState 資料庫放置於獨立磁碟陣列,並適當調整記錄檔大小與自動成長設定。

總結

透過 SQL Server 儲存 Session,您獲得了 Session 資料的持久化、跨伺服器共享、應用程式回收不遺失等企業級特性。設定僅需三步驟,是 Web Farm 部署的標準配置。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved