您目前已離線,請等候您的網際網路重新連線

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

結論
本文將逐步告訴您,如何設定 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 - 最後檢閱時間:05/16/2007 07:35:51 - 修訂: 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
意見反應