本文示範如何設定 sql Server Microsoft ASP.NET SQL Server 模式會話狀態管理。
原始產品版本: ASP.NET
原始 KB 編號: 317604
需求
下列清單概述您需要的建議硬體、軟體、網路基礎結構和 Service Pack:
- Windows
- .NET Framework
- Internet Information Services (IIS)
- SQL Server
設定 SQL Server ASP.NET 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 腳本檔案來設定 SQL Server 模式會話狀態管理 ASP.NET。 這些檔案預設會將 ASPStateTempSessions 和 ASPStateTempApplications 數據表新增至 SQL Server 中的 tempdb 資料庫。 此外,如果您重新啟動 SQL Server,就會遺失儲存在 ASPStateTempSessions 和 ASPStateTempApplications 數據表中的會話狀態數據。 如需如何執行替代腳本以設定持續性 SQL Server 工作階段狀態管理的詳細資訊,以便在重新啟動伺服器時不會遺失工作階段數據。