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

ASP.NET 使用 SQL Server 管理 Session 狀態完整設定指南

     編輯:關於SqlServer

為何需要 Session 狀態管理?

HTTP 無狀態協議,每次請求獨立,伺服器不保留記憶。ASP.NET 提供三種模式:InProc (記憶體、最快但重啟遺失)、StateServer (獨立狀態服務)、SQLServer (資料庫、最可靠、支援叢集/容錯移轉)。

Web.config 設定範例 (SQLServer 模式)

<sessionState 
    mode="SQLServer"
    stateConnectionString="tcpip=127.0.0.1:42424"
    sqlConnectionString="data source=127.0.0.1;user id=username;password=password"
    cookieless="false"
    timeout="20" 
/>

注意:屬性名稱區分大小寫。

模式屬性值說明

模式儲存位置優點缺點
InProcASP.NET 背景程序記憶體速度最快回收/重啟遺失、不支援 Web Farm
StateServer獨立 aspnet_state.exe 服務跨進程共用、支援 Web Farm單點故障、序列化開銷
SQLServerSQL Server 資料庫持久化、叢集高可用、安全性高網路延遲、需授權、序列化開銷

SQL Server 端準備:安裝 Session State 資料庫腳本

.NET Framework 安裝目錄提供:

  • InstallPersistSqlState.sql:建立持久化 Session 資料庫 (預設 ASPState),重啟後資料保留。
  • InstallSqlState.sql:建立暫存 Session 資料庫 (存於 tempdb),重啟遺失。
  • Uninstall*.sql:移除對應物件。

執行範例:sqlcmd -S . -E -i "C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallPersistSqlState.sql"

Session 變數程式碼用法

// C#
Session["UserName"] = "John";
string name = Session["UserName"] as string;

// VB.NET
Session("UserName") = "John"
Dim name As String = Session("UserName")

總結

SQL Server Session 模式是企業級 Web Farm/叢集環境的標準選擇。正確執行安裝腳本、設定連接字串、調整 timeout、監控資料庫大小與效能,即可獲得穩定可靠的跨伺服器 Session 體驗。

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