頁面包含兩個按鈕:Add to Session State(寫入)與 View Session State(讀取),配合 Session_Add、CheckSession 後端方法,可直觀驗證 Session 是否丟失。
<sessionState mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false" timeout="20" />
aspnet_state.exe)mode="StateServer"stateConnectionString="tcpip=192.168.0.2:42424"(需目標機安裝 .NET Framework 並啟動該服務)[系統盤]\WINNT\Microsoft.NET\Framework\[版本]\InstallSqlState.sqlASPState 數據庫(僅存儲過程),實際 Session 寫入 tempdb.dbo.ASPStateTempSessions,Application 寫入 ASPStateTempApplicationsASPState_Job_DeleteExpiredSessions 每分鐘清理過期 Sessionmode="SQLServer",配置 sqlConnectionString="data source=localhost;Integrated Security=SSPI;"| 維度 | InProc | StateServer | SQL Server |
|---|---|---|---|
| 性能 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ |
| 可靠性 | ⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| Web 陣列支持 | ❌ | ✅ | ✅ |
| 部署複雜度 | 零配置 | 啟動服務 | 執行腳本+配置 |
| 適用場景 | 單機、低併發、容許丟失 | Web 陣列、中等可靠性 | 金融、醫療、跨機房、長期 Session |
timeout 建議 20–30 分鐘,避免內存/數據庫膨脹