2010-02-19 8 views
5

Estoy trabajando en una aplicación web ASP.NET MVC y he creado mi propio módulo de autenticación, que está basado en sesiones (sin cookies). El problema es: cuando reconstruyo mi aplicación, me registran automáticamente (la sesión está vacía).Sesión vacía en ASP.NET/IIS después de la reconstrucción

Normalmente, este no es un gran problema porque mi aplicación no se reconstruye "automáticamente" en un entorno de producción. Pero también hice un módulo que cambia los archivos de recursos y después de una modificación de un archivo de recursos, la aplicación parece reconstruirse automáticamente.

Así que mi pregunta real: ¿es posible 'mantener' las variables de sesión/permanecer conectado después de una reconstrucción?

+0

Durante el desarrollo, siempre he preferido tenerlo así ... razón: si usted (o uno del equipo) cambia un modelo de objeto que está guardado en la Sesión, lo más probable es que explote o que el atributo sea el uso puede ser nulo o algo así. – cyberzed

Respuesta

6

Tendrá que utilizar algo que no sean sesiones InProc. Tendrá que mirar usando ASP.net State Server o un servidor SQL como la tienda de respaldo para sus sesiones. Estos pueden ser un poco más lentos, pero son más resistentes.

+1

Gracias. Encontré algo más de información al respecto: http://support.microsoft.com/kb/317604 –

+0

Este enlace me ayudó: http://www.brianstevenson.com/blog/aspstate-concurrently-running-for-net-1011 -y-net-20 / –

1

Como dice Paddy, tendrá que usar algo que no sean las sesiones de InProc. Vaya a MSDN para ver cómo cambiar a una solución basada en SQL o Windows Service.

En realidad, creo que es una buena práctica usar siempre sesiones fuera de proc. El rendimiento alcanzado al utilizar ASP.NET State Service en la misma caja es mínimo y no experimentará sorpresas desagradables si decide cambiar el mecanismo de estado de sesión en algún momento en el futuro (mientras ejecuta InProc puede introducir cualquier cosa en la sesión, pero una vez que utiliza el estado de la sesión fuera de proceso, los datos deben ser serializables, lo que puede ser una sorpresa desagradable en un momento en que las sorpresas no son bienvenidas).

Cuestiones relacionadas