Question

Pour simplifier les choses, nous avons quelques pages aspx ...

Page1.aspx - réinitialise les informations de session.
Page2.aspx - Formulaire de recherche avec les résultats et définition des variables de session.
Page3.aspx, Page4.aspx, Page5.aspx - nécessite des variables de session définies sur Page2.aspx

Ce que nous constatons, c’est que lorsque Page2.aspx charge et définit les variables de session, Page1.aspx est appelé et réinitialise la session. Cependant, Page1.aspx apparaît dans le navigateur, pas Page2.aspx. Nous n’avons pu le constater que lorsque nous avons parcouru le code et mis des points de rupture dans les événements Page_Load de Page1.aspx et Page2.aspx et que nous avons été surpris de voir que Page2.aspx était en cours de traitement dès que Page1.aspx avait arrêté le traitement de la page. serveur.

Peut-être des informations utiles ... nous utilisons une page maître et il y a des liens vers Page1.aspx dans la page maître. En dehors de cela, je ne trouve aucune référence à Page1.aspx dans la base de code.

mise à jour:
Cela peut-il être dû à l'authentification? Il semble que lorsque j'accède à Page2.aspx, le serveur s'authentifie probablement à nouveau sur Page1.aspx? Est-ce typique?

Était-ce utile?

La solution

Merci Andrew pour le conseil.

Nous avons compris ce qui se passait ... Page1.aspx dans l'application est vraiment Default.aspx. Sur Page2.aspx, un autre développeur a placé une balise img sur la page pour laquelle la propriété src n'était pas définie. Ainsi, lorsque Page2.aspx était exécuté, il recherchait une image située au niveau racine du site Web, puis le code était déclenché sur Default.aspx (Page1) et effaçait la session.

Globalement, cela ressemblait à quelque chose comme ça ...

Sur Page2.aspx

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

Espérons que cela aide quelqu'un d'autre.

Autres conseils

Lancez Fiddler et lancez l’application normalement. Il vous indiquera le trafic en cours et identifiera les pages redirigées vers d'autres pages. Une fois que vous connaissez le chemin, vous pouvez identifier la raison de son existence en recherchant le code source.

Il est possible que votre domaine d'application soit en cours de recyclage. Ainsi, toutes les variables de session sont perdues et vous devez probablement coder les redirections du visiteur si les variables de session sont manquantes, n'est-ce pas?

Si tel est le cas, vous pouvez utiliser le StateServer comme solution rapide, ou stocker vos variables de session dans Sql Server. Votre domaine d’application ne doit pas recycler à la minute, mais le comportement que vous voyez si vous stockez des sessions & "En cours &", Ce qui correspond au comportement par défaut, peut être provoqué.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top