Отключение состояния сеанса ASP в ASP.NET

В этой статье показано, как отключить состояние сеанса в ASP.NET.

Исходная версия продукта: ASP.NET
Исходный номер базы знаний: 306996

Сводка

Если состояние сеанса включено, ASP.NET создает сеанс для каждого пользователя, который обращается к приложению, который используется для идентификации пользователя на разных страницах в приложении. Если состояние сеанса отключено, данные пользователя не отслеживаются, и вы не можете хранить информацию в объекте Session или использовать Session_OnStart события или Session_OnEnd . Отключив состояние сеанса, можно повысить производительность, если приложению или странице не требуется состояние сеанса для его включения.

В ASP.NET, если объект не используется для Session хранения данных или обрабатывается какое-либо из Session событий (Session_OnStart или Session_OnEnd), состояние сеанса будет отключено. Новый Session.SessionID создается каждый раз, когда одна страница обновляется в одном сеансе браузера.

Отключение состояния сеанса на уровне приложения

Ниже показано, как отключить состояние сеанса на уровне приложения, что влияет на все страницы приложения.

  1. Запустите Microsoft Visual Studio .NET и создайте веб-приложение ASP.NET.
  2. В Обозреватель решений дважды щелкните Web.config, чтобы просмотреть содержимое этого файла.
  3. <sessionState> Найдите раздел и задайте для параметра режим значение Выкл.
  4. Сохраните файл и (или) проект, чтобы отключить состояние сеанса на всех страницах приложения.

Отключение состояния сеанса на уровне страницы

Ниже показано, как отключить состояние сеанса на уровне страницы, что влияет только на определенные страницы, которые включают эти изменения.

  1. Запустите Visual Studio .NET и создайте веб-приложение ASP.NET.

  2. В Обозреватель решений дважды щелкните веб-форму, для которой требуется отключить состояние сеанса.

  3. Перейдите на вкладку HTML .

  4. В верхней части страницы добавьте EnableSessionState="false" директиву @Page. Измененный атрибут должен выглядеть следующим образом:

    <%@ Page language="c#" Codebehind="WebForm1.aspx.cs"
    AutoEventWireup="false" Inherits="WebApplication1.WebForm1"
    EnableSessionState="false" %>
    
  5. Сохраните файл и (или) проект, чтобы отключить состояние сеанса на всех страницах приложения.

Устранение неполадок

При попытке задать или получить сведения при отключенном состоянии сеанса появляется следующее сообщение об ошибке:

Состояние сеанса можно использовать только в том случае, если для параметра enableSessionState задано значение true, либо в файле конфигурации, либо в директиве Page.

Ссылки