2009-01-27 14 views
0

Pour garder les choses simples, nous avons quelques pages ASPX ...page ASP.NET appelle une page ASPX supplémentaire après le chargement

Page1.aspx - Remise à zéro des informations de session.
Page2.aspx - Formulaire de recherche avec résultats et définit les variables de session.
Page3.aspx, Page4.aspx, Page5.aspx - nécessitent des variables de session définies sur Page2.aspx

Ce que nous constatons est que les charges Page2.aspx et la définition des variables de session, est Page1.aspx être appelé et réinitialiser la session. Cependant, Page1.aspx apparaît dans le navigateur, pas Page2.aspx. Nous avons seulement pu trouver ceci se produisant pendant que nous avons parcouru le code et avons placé des points de rupture dans les événements Page_Load pour Page1.aspx et Page2.aspx et avons été surpris de voir Page2.aspx étant traité dès que Page1.aspx a arrêté le traitement sur le serveur.

Informations potentiellement utiles ... nous utilisons une page principale et il y a des liens vers Page1.aspx dans la page principale. Autre que cela, je ne trouve aucune référence à Page1.aspx dans la base de code.

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

+0

Veuillez poster un code afin que nous puissions mieux comprendre le problème. – Eppz

+0

Veuillez fournir du code. C'est bizarre que Page2.aspx sache réellement à propos de Page1.aspx en considérant que ce n'est pas sa page maître et n'est pas mentionné dans le code (je suppose) – Perpetualcoder

+0

Ceci est déroutant. La première moitié dit que Page1 est traitée à la place de/après la Page2, la deuxième moitié indique que Page2 est traitée après Page1. – devio

Répondre

1

Merci pour le conseil Andrew.

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'a pas été définie. Ainsi, lorsque Page2.aspx a été exécutée, elle cherchait une image située au niveau racine du site Web, cela a ensuite déclenché le code sur Default.aspx (Page1) et effacé la session.

Dans l'ensemble, il avait l'air quelque chose comme ça ...

Sur Page2.aspx

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

Espérons qui aide à quelqu'un d'autre.

0

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 pourquoi ce chemin existe en examinant le code source.

Il est possible que votre domaine d'application soit en train de se recycler et ainsi, toutes les variables de session sont perdues et vous avez probablement du code qui redirige le visiteur si les variables de session sont manquantes, non?

Si tel est le cas, vous pouvez utiliser le StateServer ou stocker vos variables de session dans Sql Server. Votre domaine d'application ne devrait pas être recyclé toutes les minutes, mais il pourrait provoquer le comportement que vous voyez si vous stockez des sessions "en cours", ce qui est le comportement par défaut.

Questions connexes