Las variables de sesión en ASP.NET se guardan por defecto en el modo "InProc".
Si deseamos hacer persistente esta información debemos utilizar otros modos como "StateServer" o "SQLServer".
Si optamos por ésta última opción, Microsoft nos ofrece herramientas para automatizar esos procesos.
En la ruta C:\Windows\Microsoft.NET\Framework\ del servidor donde vayamos a incluir la base de datos,
en el directorio de la versión de Framework que utilicemos (por ejemplo v4.0.30319) encontraremos el ejecutable aspnet_regsql.exe
que tendremos que ejecutar con permisos de administrador de SQL Server, los parámetros más comunes son:
Como ejemplo ejecutaríamos desde la ruta C:\Windows\Microsoft.NET\Framework\v4.0.30319
el comando aspnet_regsql.exe -S SE41SDB31\SQLSERVER2008P -U TURNOSASPRE -P _TURNOSASPRE_ -ssadd -sstype c -d TurnoSASPRE
Una vez ejecutado nos creará las tablas [ASPStateTempSessions] y [ASPStateTempApplications] en la base de datos elegida (por defecto o personalizada)
donde se guardarán automáticamente las variables de sesión y aplicación respectivamente.
En el código, para implementar esta funcionalidad hay que hacer dos actuaciones:
En el caso de que la base de datos seleccionada no estuviera disponible bastaría con sustituir la sección anterior por <sessionState timeout="minutosTimeOut"/>
lo que indicaría el modo por defecto "InProc".