asp.net - net - sessionstate timeout
Mezcla de sesiones de ASP.NET utilizando StateServer(¡SCARY!) (6)
¿Cuántas veces ocurrió? ¿Comprobó si los usuarios usaban el navegador o se enviaban enlaces con identificadores de sesión?
Una forma de verificar el error de State Server es cambiar a otro administrador de sesión, cambiar a in-proc si puede o usar SQL Server, pero sería mejor encontrar una manera de reproducir el error primero para poder probarlo.
Almacenamos dos objetos en sesión. De alguna manera, uno de los objetos de otro usuario se cargó en una sesión de usuario diferente. El usuario no debería haber tenido acceso a estos datos en particular, y tan pronto como lo vieron, supieron que algo estaba muy mal.
Tenemos pruebas visuales de los datos que se le presentaron, y ciertamente no hay forma de que haya ocurrido a menos que las sesiones se confundan. Esta es una situación muy aterradora que no podemos resolver (no podemos reproducirla). La única respuesta para nosotros es culpar a ASP.NET StateServer por mezclar las variables de sesión, lo cual es completamente inaceptable y nos coloca en una mala posición.
Nuestras aplicaciones son aplicaciones ASP.NET 2.0 que se ejecutan en Windows Server 2003 con IIS6, utilizando el StateServer cookieless="false"
y FormsAuthentication.
¿Alguien más ha tenido este problema? ¿Cómo podemos resolverlo?
¿Podrían los dos usuarios cruzados estar usando el mismo proxy de caché? Si es así, entonces un usuario puede ver los datos que se almacenaron en la memoria caché para otro usuario si las URL coinciden, especialmente si el proxy no se comporta bien.
¿No fue este el principal problema con el proyecto Google Web Accelerator (ahora suspendido)?
Busque errores en su propio código primero, esta es por lejos la explicación más probable. Por ejemplo, mediante el uso de campos estáticos u otra memoria compartida, como el caché ASP.NET para datos específicos del usuario.
Nos encontramos con este problema exacto en mi empresa anterior y tardamos 3 semanas en solucionarlo. ASP.NET le daba a un usuario el estado de sesión de otra persona. Era realmente imposible duplicar en un entorno de depuración.
La solución cuando encontramos que era simplemente algo en web.config. No lo recuerdo completamente, así que pasé un tiempo buscando en Google. Creo que el problema tuvo algo que ver con el almacenamiento en caché de salida. Eche un vistazo a este artículo en "Sesiones y almacenamiento en caché de salida".
http://download.microsoft.com/download/3/a/7/3a7fa450-1f33-41f7-9e6d-3aa95b5a6aea/MSDNMagazineJuly2006en-us.chm (el artículo se titula Mantener los sitios funcionando sin problemas evitando estos 10 ASP.NET comunes Pitfalls by Jeff Prosise en la edición de julio de 2006 de la revista MSDN)
Si eso suena como su escenario, entonces la solución podría estar deshabilitando la opción enableKernelOutputCache en web.config.
Buena suerte.
Posible respuesta: se informó un problema similar utilizando el estado de sesión sin cookies.
Editar - Añadido
Otra posible respuesta:
Tenía este problema, resultó ser un atributo de OutputCache en una vista parcial.