Pregunta

Para simplificar las cosas, tenemos algunas páginas aspx ...

Page1.aspx : restablece la información de la sesión.
Page2.aspx : busca el formulario con resultados y establece variables de sesión.
Page3.aspx, Page4.aspx, Page5.aspx : requiere que las variables de sesión estén configuradas en Page2.aspx

Lo que estamos encontrando es que a medida que se carga Page2.aspx y establece las variables de sesión, se llama a Page1.aspx y se restablece la sesión. Sin embargo, Page1.aspx aparece en el navegador, no Page2.aspx. Solo pudimos encontrar que esto sucedía cuando pasamos por el código y colocamos puntos de interrupción en los eventos Page_Load para Page1.aspx y Page2.aspx y nos sorprendió ver que Page2.aspx se procesaba tan pronto como Page1.aspx dejaba de procesar en el servidor.

Información posiblemente útil ... utilizamos una página maestra y hay enlaces a Page1.aspx en la página maestra. Aparte de eso, no puedo encontrar ninguna referencia a Page1.aspx en la base del código.

actualización:
¿Puede ser debido a la autenticación? Parece que cuando accedo a Page2.aspx, ¿el servidor posiblemente se esté autenticando nuevamente en Page1.aspx? ¿Es eso típico?

¿Fue útil?

Solución

Gracias por el consejo Andrew.

Descubrimos lo que estaba pasando ... Page1.aspx en la aplicación es realmente Default.aspx. En Page2.aspx, otro desarrollador colocó una etiqueta img en la página que no tenía definida la propiedad src. Entonces, cuando se ejecutó Page2.aspx, estaba buscando una imagen ubicada en el nivel raíz del sitio web, esto activó el código en Default.aspx (Página1) y borró la sesión.

En general, se parecía a esto ...

En Page2.aspx

<img src=""> <!-- this ended up triggering a call to Default.aspx, wiping the session -->

Espero que eso ayude a alguien más.

Otros consejos

Inicie Fiddler y ejecute la aplicación normalmente. Le indicará el tráfico que está ocurriendo e identificará qué páginas están redirigiendo a otras páginas. Una vez que conozca la ruta, puede identificar por qué existe esa ruta investigando el código fuente.

Es posible que el dominio de su aplicación se esté reciclando y, por lo tanto, todas las variables de sesión se pierdan y probablemente tenga un código que redirija al visitante si faltan las variables de sesión, ¿verdad?

Si este es el caso, como solución rápida, puede usar StateServer o almacenar sus variables de sesión en Sql Server. El dominio de su aplicación no debería reciclarse cada minuto, pero podría causar el comportamiento que ve si está almacenando sesiones & Quot; en proceso & Quot ;, que es el valor predeterminado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top