Desabilitar o estado da sessão ASP no ASP.NET

Este artigo demonstra como desabilitar o estado da sessão em ASP.NET.

Versão original do produto: ASP.NET
Número de KB original: 306996

Resumo

Quando o estado da sessão está habilitado, ASP.NET cria uma sessão para cada usuário que acessa o aplicativo, que é usado para identificar o usuário entre páginas no aplicativo. Quando o estado da sessão é desabilitado, os dados do usuário não são rastreados e você não pode armazenar informações no Session objeto ou usar os Session_OnStart eventos ou Session_OnEnd . Ao desabilitar o estado da sessão, você poderá aumentar o desempenho se o aplicativo ou a página não exigir estado de sessão para habilitá-lo.

Em ASP.NET, se você não usar o Session objeto para armazenar dados ou se algum dos eventos (Session_OnStart ou Session_OnEnd) for tratado, o Session estado da sessão será desabilitado. Uma nova Session.SessionID é criada sempre que uma única página é atualizada em uma sessão do navegador.

Desabilitar o estado da sessão no nível do aplicativo

As etapas a seguir demonstram como desabilitar o estado da sessão no nível do aplicativo, o que afeta todas as páginas do aplicativo:

  1. Inicie o Microsoft Visual Studio .NET e crie um novo aplicativo Web ASP.NET.
  2. Em Gerenciador de Soluções, clique duas vezes emWeb.config para exibir o conteúdo deste arquivo.
  3. Localize a <sessionState> seção e defina o valor do modo como Desativado.
  4. Salve o arquivo e/ou o projeto para desabilitar o estado da sessão em todas as páginas do aplicativo.

Desabilitar o estado da sessão no nível da página

As etapas a seguir demonstram como desabilitar o estado da sessão no nível da página, o que afeta apenas as páginas específicas que habilitam essas alterações:

  1. Inicie o Visual Studio .NET e crie um novo aplicativo Web ASP.NET.

  2. Em Gerenciador de Soluções, clique duas vezes no Formulário Web para o qual você deseja desabilitar o estado da sessão.

  3. Selecione a guia HTML .

  4. Na parte superior da página, adicione EnableSessionState="false" a diretiva @ Page. O atributo modificado deve aparecer semelhante ao seguinte:

    <%@ Page language="c#" Codebehind="WebForm1.aspx.cs"
    AutoEventWireup="false" Inherits="WebApplication1.WebForm1"
    EnableSessionState="false" %>
    
  5. Salve o arquivo e/ou o projeto para desabilitar o estado da sessão em todas as páginas do aplicativo.

Solução de problemas

Se você tentar definir ou recuperar informações quando o estado da sessão estiver desabilitado, você receberá a seguinte mensagem de erro:

O estado da sessão só pode ser usado quando enableSessionState é definido como true, em um arquivo de configuração ou na diretiva Page

Referências