post icon

Configurar SQL Server para almacenar el estado de la sesión de ASP.NET

Las variables de sesión ya hemos visto como utilizar anteriormente en éste post, pero en ese momento sólo lo veíamos configurado con el método InProc que consume bastante memoria RAM del servidor. Hoy configuraremos para que la aplicación utilice SQL Server para administrar éstas variables.

Las ventajas y desventajas de cada modo de uso hace que sea ideal para casos específicos, en resumen, manejarlo con el método InProc hace que sea más rápida la lectura/escritura de las misma, pero otorga un alto consumo de memoria: si tenemos muchos objetos almacenado allí y más si tenemos una alta concurrencia. En cambio al almacenarlas en SQL Server (incluso puede ser otro motor, veremos mas adelante como hacerlo con MySQL) la lectura/escritura es más lenta ya que se debe acceder al disco duro, pero queda libre el espacio en RAM para otros menesteres.

Otro dato interesante saber es que si se corta la corriente eléctrica o se apaga inesperadamente del Servidor, las variables de sesión InProc se pierden en cambio las almacenadas en la BD se pueden configurar para que sean persistentes (Por defecto también se pierden, veremos en una siguiente entrega la persistencia de las variables de sesión). También al dejar de utilizar InProc los eventos de inicio y fin de sesion del Global.asax de nuestro sitio nunca se ejecutarán.

Los pasos a seguir para su configuración son como siguen:

    En las siguientes rutas se encuentran las plantillas de creación de la base de datos que necesitará IIS para administrarlo

    unidad de sistema\WINNT\Microsoft.NET\Framework\versión\
    
    unidad de sistema\Windows\Microsoft.NET\Framework\versión\
    
  • Abrimos y ejecutamos el query del archivo InstallSqlState.sql
  • Luego en el fichero web.config del sitio que utilizará este sistema agregamos el siguiente bloque dentro de la etiqueta <system.web></system.web>
  • <sessionState mode="SQLServer" sqlConnectionString="data source=servidor;User Id=user;Password=*******;" />

Whola! con esto ya tenemos todo listo.

Comentarios desde Facebook:

  1. avatar
    victor CHILE Google Chrome Windows
    19 diciembre 2012 at 00:41 #

    Hola, está bastante bueno tu post, desde hace rato que andaba buscando como mantener las variables de session con sql server… me gustaría saber si una vez configurado esto el manejo de las variables continua siendo el mismo por ej: Sessio[“user”]=”nombreUsuario”;

Responder