HOW TO:設定 SQL Server 以儲存 ASP.NET 工作階段狀態

文章翻譯 文章翻譯
文章編號: 317604 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

本文將逐步告訴您,如何設定 Microsoft SQL Server 的 ASP.NET SQL Server 模式工作階段狀態管理。

需求

下面清單列出了建議使用的硬體、軟體、網路基礎架構以及所需安裝的 Service Pack:
  • Microsoft Windows 2000 Professional、Microsoft Windows 2000 Server、Microsoft Windows 2000 Advanced Server 或 Microsoft Windows XP
  • Microsoft .NET Framework
  • Microsoft Internet Information Services (IIS)
  • Microsoft SQL Server

設定 SQL Server 的 ASP.NET SQL Server 工作階段狀態

下列步驟將告訴您,如何執行 InstallSqlState.sql 及 UninstallSqlState.sql 指令碼檔案,以設定 SQL Server 模式工作階段狀態管理。
  1. 在 [SQL Query Analyzer] 中,按一下 [檔案] 功能表上的 [開啟]
  2. [開啟查詢檔案] 對話方塊中,瀏覽至 InstallSqlState.sql 指令碼檔案,然後按一下 [開啟]。依預設,InstallSqlState.sql 會位於下列其中一個資料夾中:
    system drive\WINNT\Microsoft.NET\Framework\version\

    system drive\Windows\Microsoft.NET\Framework\version\
  3. 在 SQL Query Analyzer 中開啟 InstallSqlState.sql 之後,按一下 [查詢] 功能表上的 [執行],以執行指令碼。
  4. 在您執行 UninstallSqlState.sql 指令碼檔案,以解除安裝 SQL Server 模式工作階段狀態管理設定之前,必須先停止 w3svc 處理程序。如果要執行這項操作,請依照下列步驟執行:
    1. 在 Windows [開始] 功能表上,按一下 [執行],輸入 cmd,再按 [確定],以開啟命令提示字元。
    2. 在命令提示字元中,輸入 net stop w3svc。您會收到 w3svc 處理程序已經停止的確認訊息。
  5. 在 [SQL Query Analyzer] 中,按一下 [檔案] 功能表上的 [開啟]
  6. [開啟查詢檔案] 對話方塊中,瀏覽至 UninstallSqlState.sql 指令碼檔案,然後按一下 [開啟]。依預設,UninstallSqlState.sql 會位於下列其中一個資料夾中:
    system drive\WINNT\Microsoft.NET\Framework\version\

    system drive\Windows\Microsoft.NET\Framework\version\
  7. 在 SQL Query Analyzer 中開啟 UninstallSqlState.sql 之後,按一下 [查詢] 功能表上的 [執行],以執行指令碼。
  8. 解除安裝 SQL Server 模式工作階段狀態管理設定之後,您必須重新啟動 w3svc 服務。如果要重新啟動 w3svc 處理程序,請在命令提示字元中輸入 net start w3svc

修改應用程式的 Web.config 檔案

如果要實作 ASP.NET SQL Server 模式工作階段狀態管理,您必須依照下列指示,修改應用程式中 Web.config 檔案的 <sessionState> 項目:
  1. <sessionState> 項目的 mode 屬性設定為 SQLServer,以指出工作階段狀態是儲存在 SQL Server 中。
  2. 設定 sqlConnectionString 屬性,以指定 SQL Server 的連接字串。例如:
    sqlConnectionString="data source=MySQLServer;user id=<username>;password=<strongpassword>"
    

    注意 使用者 <user name> 必須擁有權限,才能在資料庫上執行這項操作。

    修改的 <sessionState> 項目會顯示如下:
    <sessionState 
                mode="SQLServer"
                sqlConnectionString="data source=127.0.0.1;user id=<username>;password=<strongpassword>"
                cookieless="false" 
                timeout="20" 
        />
    						
    注意 當您指定 <sessionState> 項目及相關的屬性值時,請確認您使用正確的大小寫。此程式碼區分大小寫。

疑難排解

  • 如果您在執行 UninstallSqlState.sql 指令碼檔案之前,沒有先停止 w3svc 處理程序,就會收到下列錯誤訊息:
    Cannot drop the database 'ASPState' because it is currently in use (無法卸除資料庫 'ASPState',因為資料庫正在使用中)
  • 如果 ASPStateTempSessions 表格中的項目沒有在相關的工作階段過期之後加以移除,請確認 SQL Server 代理程式正在執行中。您可以透過 SQL Server 中工作所排定的預存程序,來實作這項功能。SQL Server 代理程式會管理這些工作。
  • 當您使用預設的 InstallSqlState.sql 及 UninstallSqlState.sql 指令碼檔案來設定 ASP.NET SQL Server 模式工作階段狀態管理時,請注意這些檔案預設會將 ASPStateTempSessionsASPStateTempApplications 表格新增至 SQL Server 的 tempdb 資料庫中。此外,如果您重新啟動 SQL Server,就會遺失儲存在 ASPStateTempSessionsASPStateTempApplications 表格中的工作階段狀態資料。如需有關如何執行其他指令碼,以設定持續的 SQL Server 工作階段狀態管理,讓您在重新啟動伺服器之後,不用擔心工作階段資料會遺失的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    311209 HOW TO:Configure ASP.NET for Persistent SQL Server Session State Management

?考

如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
305140 INFO:ASP.NET 藍圖
307598 INFO:ASP.NET 狀態管理概觀
236166 Using NET STOP and NET START Commands to Force IIS Services to Re-Read the Registry
如需有關 ASP.NET 工作階段狀態管理的詳細資訊,請參考下列 Microsoft 網站:
工作階段狀態 (英文)
http://msdn2.microsoft.com/en-us/library/87069683(vs.71).aspx

Cutting Edge:在 ASP.NET 中使用工作階段和應用程式物件 (MSDN Magazine 文件) (英文)
http://msdn.microsoft.com/msdnmag/issues/01/11/cutting/default.aspx

屬性

文章編號: 317604 - 上次校閱: 2007年5月16日 - 版次: 6.5
這篇文章中的資訊適用於:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
關鍵字:?
kbconfig kbhowtomaster kbstate kbwebforms kbhowto KB317604
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com