停用 ASP.NET 中的 ASP 工作階段狀態

本文示範如何停用 ASP.NET 中的會話狀態。

原始產品版本: ASP.NET
原始 KB 編號: 306996

摘要

啟用工作階段狀態時,ASP.NET 為每個存取應用程式的使用者建立工作階段,以用來識別應用程式內各頁面的使用者。 停用工作階段狀態時,不會追蹤用戶數據,而且您無法將資訊儲存在 Session 物件中,或使用 Session_OnStartSession_OnEnd 事件。 藉由停用工作階段狀態,如果應用程式或頁面不需要會話狀態來啟用它,您可以提高效能。

在 ASP.NET 中,如果您不使用 Session 對象來儲存任何數據,或處理任何 Session 事件(Session_OnStartSession_OnEnd),則會停用會話狀態。 每次在瀏覽器工作階段重新整理單一頁面時,都會建立新的 Session.SessionID

停用應用層級的會話狀態

下列步驟示範如何在應用層級停用會話狀態,這會影響應用程式中的所有頁面:

  1. 開始Microsoft Visual Studio .NET,並建立新的 ASP.NET Web 應用程式。
  2. 方案總管 中,按兩下 Web.config 以檢視此檔案的內容。
  3. 找出 區 <sessionState> 段,並將模式值設定為 Off
  4. 儲存盤案和/或專案,以停用應用程式中所有頁面的會話狀態。

停用頁面層級的會話狀態

下列步驟示範如何在頁面層級停用會話狀態,這隻會影響啟用這些變更的特定頁面:

  1. 啟動 Visual Studio .NET,並建立新的 ASP.NET Web 應用程式。

  2. 方案總管 中,按兩下您要停用工作階段狀態的Web窗體。

  3. 選取 HTML 索引標籤。

  4. 在頁面頂端,新增 EnableSessionState="false" @ Page 指示詞。 變更的屬性應該如下所示:

    <%@ Page language="c#" Codebehind="WebForm1.aspx.cs"
    AutoEventWireup="false" Inherits="WebApplication1.WebForm1"
    EnableSessionState="false" %>
    
  5. 儲存盤案和/或專案,以停用應用程式中所有頁面的會話狀態。

疑難排解

如果您嘗試在工作階段狀態停用時設定或擷取資訊,您會收到下列錯誤訊息:

只有在 enableSessionState 設定為 true 時,才能在組態檔或 Page 指示詞中使用會話狀態

參考資料