Como armazenar sessões do ASP.NET no SQL Server

Olá pessoal, tudo bom?

É possível armazenar sessões dos aplicativos ASP.NET no banco de dados SQL Server. Isso é interessante, principamente para quando você tem uma situação de balanceamento de carga e pretende fazer com que sua aplicação, que está em servidores distintos, possa compartilhar as mesmas variáveis de sessão.

Vamos às configurações:

1) No arquivo web.config de sua aplicação faça a seguinte declaração entre as tags <system.web>.


&lt;configuration&gt;
  &lt;system.web&gt;
    &lt;sessionState mode=&quot;SQLServer&quot; cookieless=&quot;false&quot; regenerateExpiredSessionId=&quot;true&quot;
timeout=&quot;30&quot; sqlConnectionString=&quot;Server=localhostsqlexpress;User ID=sa;Password=a12345z&quot;
stateNetworkTimeout=&quot;30&quot;/&gt;
  &lt;/system.web&gt;
&lt;/configuration&gt;

Na configuração acima, está sendo indicado para a aplicação que a mesma irá armazenar suas sessões no SQL Server, que ela deve utilizar cookies para armazenar o Session.SessionID, que deve regenerar sessões expiradas, que o tempo máximo de inatividade de uma sessão será de 30 minutos, que o servidor SQL Server é indicado pela instância localhostsqlexpress, que o usuário é sa, que a senha do sa é a12345z e que o tempo de espera pela conexão de rede ao SQL Server é de no máximo 30 segundos.

2) Agora é necessário instalar o banco de dados ASPState para que o mesmo possa armazenar as sessões das aplicações. Para isso, clique no menu Iniciar, aponte para Todos os Programas, e para Microsoft Visual Studio 2010 -> Visual Studio Tools -> Visual Studio Command Prompt (2010). Digite a instrução a seguir:

aspnet_regsql.exe -S localhostsqlexpress -U sa -P a12345z -ssadd -sstype p

Onde:

-S = instância do SQL Server onde o banco de dados ASPState será criado,
-U = usuário que será utilizado para se conectar ao BD,
-P = senha do usuário que será utilizado para se conectar ao BD,
-ssadd = adiciona o banco de dados de sessão e
-sstype = indica o local o as sessões serão armazenas, no caso, o próprio banco ASPState

Caso você esteja utilizando alguma versão do SQL Server Express, será necessário executar as seguintes instruções no SQL Server Query Analyser antes da execução do passo 2.

execute sp_configure ‘show advanced options’,1
reconfigure with override
execute sp_configure ‘Agent XPs’,1
reconfigure with override
execute sp_configure ‘show advanced options’,0
reconfigure with override

É isso!

Grande abraço a todos!
Eduardo Henrique Rizo

[twitter-follow screen_name=’eduardorizo’ show_count=’yes’]

1 comentário em “Como armazenar sessões do ASP.NET no SQL Server”

  1. No segundo passo o comando correto é:
    aspnet_regsql.exe –S localhost\sqlexpress –U sa –P a12345z –ssadd –sstype p

Deixe um comentário para Wesley Escramanhoni Cancelar resposta