設定 SQL Server 以儲存 ASP.NET 工作階段狀態
本文示範如何設定 Microsoft SQL Server 以進行 ASP.NET SQL Server模式會話狀態管理。
原始產品版本: ASP.NET
原始 KB 編號: 317604
需求
下列清單概述您需要的建議硬體、軟體、網路基礎結構和 Service Pack:
- Windows
- .NET Framework
- Internet Information Services (IIS)
- SQL Server
設定 ASP.NET SQL Server會話狀態的 SQL Server
下列步驟說明如何執行InstallSqlState.sql和UninstallSqlState.sql腳本檔案,以設定 SQL Server 模式會話狀態管理。
在 [SQL 查詢分析器] 的 [ 檔案 ] 功能表上,選取 [ 開啟]。
在 [ 開啟查詢檔案] 對話框中,流覽至 InstallSqlState.sql 腳本檔案,然後選取 [ 開啟]。 根據預設, InstallSqlState.sql 位於下列其中一個資料夾中:
system drive\WINNT\Microsoft.NET\Framework\version\
system drive\Windows\Microsoft.NET\Framework\version\
在 SQL 查詢分析器中開啟InstallSqlState.sql之後,選取 [查詢] 功能表上的 [執行] 以執行腳本。
執行UninstallSqlState.sql腳本檔案以卸載 SQL Server 模式會話狀態管理組態之前,您必須停止 w3svc 程式。 如果要執行這項操作,請依照下列步驟執行:
- 在 Windows [開始 ] 選單上,選取 [ 執行],輸入 cmd,然後選取 [ 確定 ] 以開啟命令提示字元。
- 在命令提示字元中, 輸入
net stop w3svc
。 您會收到 w3svc 進程已停止的確認。
在 [SQL 查詢分析器] 的 [ 檔案 ] 功能表上,選取 [ 開啟]。
在 [ 開啟查詢檔案] 對話框中,流覽至 UninstallSqlState.sql 腳本檔案,然後選取 [ 開啟]。 根據預設, UninstallSqlState.sql 位於下列其中一個資料夾中:
system drive\WINNT\Microsoft.NET\Framework\version\
system drive\Windows\Microsoft.NET\Framework\version\
在 SQL 查詢分析器中開啟UninstallSqlState.sql之後,選取 [查詢] 功能表上的 [執行] 以執行腳本。
卸載 SQL Server 模式會話狀態管理設定之後,您必須重新啟動 w3svc 服務。 若要重新啟動 w3svc 程式,請在命令提示字元中輸入
net start w3svc
。
修改應用程式的 Web.config 檔案
若要實作 ASP.NET SQL Server模式會話狀態管理,您必須修改<sessionState>
應用程式 Web.config 檔案的 元素,如下所示:
將 專案的mode屬性
<sessionState>
設定為 SQLServer,以指出工作階段狀態儲存在 SQL Server 中。sqlConnectionString
設定 屬性以指定 SQL Server 的 連接字串。 例如:sqlConnectionString="data source=MySQLServer;user id=<username>;password=<strongpassword>"
注意事項
使用者名稱<>必須具有在資料庫上執行此作業的許可權。
<sessionState>
修改過的項目應該如下所示:
<sessionState
mode="SQLServer"
sqlConnectionString="data source=127.0.0.1;user id=<username>;password=<strongpassword>"
cookieless="false"
timeout="20"
/>
注意事項
當您指定 <sessionState>
專案和相關聯的屬性值時,請確定您使用正確的案例。 此程式代碼區分大小寫。
疑難排解
如果您在執行 UninstallSqlState.sql腳本 檔案之前未停止 w3svc 程式,您會收到下列錯誤訊息:
無法卸除資料庫 『ASPState』,因為它目前正在使用中
如果在相關會話到期之後,不會移除 ASPStateTempSessions 數據表中的專案,請確定 SQL Server 代理程式正在執行中。 您可以透過在 SQL Server 中透過作業排程的預存程式來實作這項功能。 SQL Server 代理程式會管理這些作業。
當您使用預設InstallSqlState.sql和UninstallSqlState.sql腳本檔案來設定 ASP.NET SQL Server模式會話狀態管理時。 這些檔案預設會將 ASPStateTempSessions 和 ASPStateTempApplications 數據表新增至 SQL Server 中的 tempdb 資料庫。 此外,如果您重新啟動 SQL Server,則會遺失儲存在 ASPStateTempSessions 和 ASPStateTempApplications 數據表中的會話狀態數據。 如需如何執行替代腳本以設定持續性 SQL Server 工作階段狀態管理的詳細資訊,讓會話資料不會在您重新啟動伺服器時遺失。
參考資料
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應