INFO: ASP.NET State Management Overview

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 307598
Sumário
Este artigo fornece uma introdução aos recursos de gerenciamento de estado ASP.NET.

Para adicionais visões gerais sobre ASP.NET, consulte o seguinte artigo:
305140INFO: Guia de ASP.NET
Mais Informações
O HTTP é um protocolo sem monitoração de estado. Cada solicitação é atendida como se trata de; depois que a solicitação é processada, todos os dados serão descartados. Nenhum estado é mantido em solicitações mesmo do mesmo cliente.

No entanto, é muito útil manter o estado em solicitações para determinados soluções. ASP.NET permite que você mantenha o estado do aplicativo e estado da sessão através do uso de variáveis de aplicativo e sessão respectivamente.

Este artigo aborda os seguintes tópicos gerenciamento de estado:

Estado do aplicativo

As variáveis de estado do aplicativo são, na verdade, variáveis globais para cada aplicativo ASP.NET. Você pode compartilhar valores dessas variáveis em todo esse aplicativo. Essas variáveis geralmente são definidas no evento Application_OnStart e, em seguida, o ASP.NET individuais acessados e modificados em páginas.

O tempo de vida de variáveis de aplicativo se estende até o tempo de vida do aplicativo ASP.NET até que o aplicativo seja descarregado.

Para obter mais informações sobre o estado do aplicativo, consulte o tópico seguinte no .NET Framework Software Development Kit (SDK) documentação:

Estado de sessão

Você pode armazenar valores que precisam ser mantidas durante a sessão de um usuário em variáveis de sessão. Essas variáveis são exclusivas para cada sessão de usuário e podem ser acessadas em qualquer página dentro de um aplicativo do ASP.NET. Você pode definir e acessar informações de sessão de dentro de um aplicativo ASP.NET. Por exemplo:

Microsoft Visual Basic .NET
'Assign a value to the myvariable session variable.Session("myvariable") = "somevalue"'Retrieve the value of the myvariable session variable.If not(Session("myvariable")is nothing) Then  Dim myString As String = Session("myvariable").ToString()End If				
.NET do Microsoft Visual translation from VPE for Csharp
//Assign a value to the myvariable session variable.Session["myvariable"] = "somevalue";//Retrieve the value of the myvariable session variable.string myString;if (Session["myvariable"] != null)  myString = (string)Session["myvariable"];				
é importante lembrar que as variáveis de sessão agora são objetos. Portanto, para evitar um erro em tempo de execução, você deve verificar se a variável é definida antes de você tentar acessá-lo.

Variáveis de sessão são automaticamente descartadas após eles não são usados para a configuração de tempo limite que está especificada no arquivo Web.config. Em cada solicitação, o tempo limite é redefinido. As variáveis são perdidas quando a sessão é abandonada explicitamente no código.

Quando uma sessão é iniciada na primeira solicitação, o servidor emite uma identificação de sessão exclusiva para o usuário. Para manter a identificação da sessão, armazená-lo em um cookie na memória (que é o padrão) ou incorporá-lo dentro de URL de solicitação após o nome do aplicativo. Para alternar entre o cookie e o estado da sessão cookieless, defina o valor da cookieless parâmetro no arquivo Web.config para true ou false .

No modo cookieless, o servidor insere automaticamente a identificação de sessão no apenas as URLs relativas. Uma URL absoluta não é modificada, mesmo se ele apontar para o mesmo aplicativo ASP.NET, que pode causar a perda de variáveis de sessão.

ASP.NET oferece suporte a três modos de estado da sessão:
  • InProc : modo PROC. armazena valores na memória do processo de trabalho do ASP.NET. Portanto, esse modo oferece o mais rápido acesso a esses valores. No entanto, quando recicla o processo do operador do ASP.NET, os dados de estado são perdidos.
  • StateServer : como alternativa, O modo StateServer usa um serviço autônomo do Microsoft Windows para armazenar as variáveis de sessão. Como esse serviço é independente do Microsoft Internet Information Server (IIS), ele pode executar em um servidor separado. Você pode usar esse modo para uma solução de balanceamento de carga porque vários servidores Web podem compartilhar variáveis de sessão. Embora as variáveis de sessão não sejam perdidas se você reiniciar o IIS, o desempenho é afetado quando cruzar limites de processo.
  • SqlServer : se você estiver muito preocupado com a persistência de informações de sessão, você pode usar modo do SqlServer para aproveitar o Microsoft SQL Server para garantir o nível mais alto de confiabilidade. Modo do SqlServer é similar ao modo de fora de processo, exceto que os dados da sessão são mantidos em um SQL Server. Modo do SqlServer também permite que você utilizar um armazenamento de estado que está localizado fora do processo IIS e que pode ser localizado no computador local ou em um servidor remoto.
Observação Você pode usar todos os três modos com cookie na memória ou persistência de identificação de sessão cookieless.

Para obter mais informações sobre estado da sessão, consulte o tópico a seguir na documentação do .NET Framework SDK:

Configurar estado da sessão

Você pode configurar estado da sessão no <sessionstate> seção de configuração do arquivo Web.config. O <sessionstate> seção de configuração é semelhante à seguinte:
<sessionState mode="InProc"   stateConnectionString="tcpip=127.0.0.1:42424"   sqlConnectionString="data source=127.0.0.1;user id=<username>;password=<strong password>"   cookieless="false"   timeout="20" />				
para obter mais informações sobre o <sessionstate> configuração seção, consulte o tópico a seguir no .NET Framework SDK documentação: Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
317604COMO: Configurar o SQL Server para armazenamento de estado da sessão ASP.NET
Referências
Para obter informações mais gerais sobre o ASP.NET, consulte o seguinte grupo de notícias MSDN:

Propriedades

ID do Artigo: 307598 - Última Revisão: 05/16/2007 07:35:51 - Revisão: 4.7

Microsoft ASP.NET 1.1, Microsoft ASP.NET 1.0

  • kbmt kbarttyperoadmap kbcookie kbinfo kbstate KB307598 KbMtpt
Comentários