2009-01-27 4 views
0

J'ai du mal à déboguer l'un des problèmes que j'ai sur notre site. C'est le problème. J'ai une page Web qui contient la photo d'un employé et des informations relatives à l'employé. Lorsque l'utilisateur se connecte à notre site Web, nous stockons les détails de l'employé en session. Je définis l'URL de l'image pour la photo d'un employé comme suit.Obtenir la liste de toutes les fonctions exécutées comme la pile d'appel dans asp.net

imgEEPhoto.ImageUrl = imgPhoto.aspx?Company=XXXX&Empno=YYYY. 

Dans la page imgPhoto.aspx, je vérifie si la session est active pour cet utilisateur. quand je me connecte à la page qui a la photo de l'employé, parfois la photo n'est pas affichée. C'est parce que je vérifie si la session est active dans la page imgPhoto.aspx. parfois la session est vivante et parfois la session n'est pas vivante. Il semble qu'il existe une fonction qui définit la session de manière asynchrone. Je ne sais pas comment suivre cette fonction. donc je pense qu'à l'intérieur de la page imgPhoto.aspx, si je peux obtenir la liste de toutes les fonctions qui ont été exécutées jusqu'ici, je pourrais suivre la fonction qui réinitialise la session. Y a-t-il un moyen de trouver cela?

S'il n'y a pas d'autre moyen de déboguer ce problème, s'il vous plaît faites le moi savoir.

EDIT:

Le imgPhoto.aspx de page est entreprise et empno en tant que paramètres de chaîne de requête. Ensuite, la page obtient les données binaires basées sur company et empno et utilise Response.BinaryWrite() pour afficher la photo. La vérification de session est au début de cette fonction. donc quelque part avant que cette fonction ne soit appelée et après la fin de toutes les fonctions dans la page principale, la session reçoit un délai. En fait, je ne suis pas sûr si le délai est dépassé car je peux imprimer le fichier session. Mais je ne peux pas accéder aux variables stockées en session.

Si j'imprime l'appel dans la fonction, il donne la liste des fonctions qui sont exécutées à l'intérieur de cette page. Il ne donne pas toutes les fonctions qui sont exécutées avant cette fonction.

Répondre

0

Il n'existe pas de fonction intégrée dans .NET pour lister toutes les fonctions appelées, bien que vous puissiez imprimer la pile d'appel à un point spécifique (comme les exceptions).

Je vous suggère de chercher un profileur de couverture de code si c'est la route que vous voulez prendre.

0

Si je comprends le problème, le imgphoto.aspx construit une chaîne qui contient une adresse URL, puis le renvoyer, correct? Si oui, si vous avez modifié imgPhoto.aspx pour toujours renvoyer une URL codée en dur pour une image que vous connaissez déjà, avez-vous toujours le problème?

Je voudrais d'abord exclure que d'une manière ou d'une autre vous ne renvoyiez pas involontairement une url malformée, ou l'url d'une photo qui n'existe pas. Je vais essayer ceci en premier, sans vérifier la session, et si vous ne pouvez pas reproduire le problème (c'est-à-dire qui fonctionne toujours), ajoutez les vérifications de session et renvoyez toujours une URL statique pour voir si le problème peut être dupliqué .

J'essaie toujours d'exclure les choses «faciles» d'abord - peut-être avez-vous déjà fait cela?

0

Il semble que votre problème soit intermittent, peut-être que votre état de session expire? Vous pouvez vous connecter lorsque la session se termine dans la méthode Session_End des fichiers Gloabal.asax pour savoir exactement quand la session est terminée. Vous pouvez essayer d'augmenter la résolution Session timeout (la valeur par défaut est de 20 minutes):

La propriété Timeout peut être définie dans le Web.fichier config

<SessionState timeout = "30" /> 

ou, vous pouvez définir la valeur de la propriété Timeout directement à l'aide du code d'application

Session.Timeout = 30 
+0

J'utilise la session sur la page principale et aussi à la page de imgPhoto. Si le délai expire, cela devrait donner une erreur sur la page principale. Mais il ne donne aucune erreur. J'ai vérifié la session après chaque fonction que la page appelle et la session est active dans toutes les fonctions. –

Questions connexes