本文示範如何停用 ASP.NET 中的會話狀態。
原始產品版本: ASP.NET
原始 KB 編號: 306996
摘要
啟用工作階段狀態時,ASP.NET 為每個存取應用程式的使用者建立工作階段,以用來識別應用程式內各頁面的使用者。 停用工作階段狀態時,不會追蹤用戶數據,而且您無法將資訊儲存在 Session 物件中,或使用 Session_OnStart 或 Session_OnEnd 事件。 藉由停用工作階段狀態,如果應用程式或頁面不需要會話狀態來啟用它,您可以提高效能。
在 ASP.NET 中,如果您不使用 Session 對象來儲存任何數據,或處理任何 Session 事件(Session_OnStart 或 Session_OnEnd),則會停用會話狀態。 每次在瀏覽器工作階段重新整理單一頁面時,都會建立新的 Session.SessionID 。
停用應用層級的會話狀態
下列步驟示範如何在應用層級停用會話狀態,這會影響應用程式中的所有頁面:
- 開始Microsoft Visual Studio .NET,並建立新的 ASP.NET Web 應用程式。
- 在 方案總管 中,按兩下 Web.config 以檢視此檔案的內容。
- 找出 區
<sessionState>段,並將模式值設定為 Off。 - 儲存盤案和/或專案,以停用應用程式中所有頁面的會話狀態。
停用頁面層級的會話狀態
下列步驟示範如何在頁面層級停用會話狀態,這隻會影響啟用這些變更的特定頁面:
啟動 Visual Studio .NET,並建立新的 ASP.NET Web 應用程式。
在 方案總管 中,按兩下您要停用工作階段狀態的Web窗體。
選取 HTML 索引標籤。
在頁面頂端,新增
EnableSessionState="false"@ Page 指示詞。 變更的屬性應該如下所示:<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WebApplication1.WebForm1" EnableSessionState="false" %>儲存盤案和/或專案,以停用應用程式中所有頁面的會話狀態。
疑難排解
如果您嘗試在工作階段狀態停用時設定或擷取資訊,您會收到下列錯誤訊息:
只有在 enableSessionState 設定為 true 時,才能在組態檔或 Page 指示詞中使用會話狀態