2009-08-12 8 views
0

J'ai une application Web en direct qui échoue dans un scénario spécifique, et localement, cela fonctionne très bien. Je n'ai pas de configuration de débogage à distance, et je veux vérifier la valeur de certaines des variables dans le code. Quel serait le moyen le plus rapide pour me connecter/envoyer par courrier électronique/déboguer le code pour voir ces valeurs?Quel est le moyen le plus rapide pour injecter de la journalisation sur une application Web en direct?

Pour être clair, aucune erreur/exception n'est levée. Quelque chose est différent, et cela provoque l'application à donner des résultats inattendus.

Merci d'avance!

Répondre

2

Le le plus rapide est d'implémenter simplement une certaine consignation dans l'événement Application_Error dans votre fichier Global.asax. Si vous n'avez pas de fichier Global.asax, créez-en simplement un avec l'assistant VS New File et il gérera cet événement pour vous.

Cela ne vous aidera pas à accéder aux variables locales à la portée de l'erreur, mais vous pouvez enregistrer des variables globales à partir de là et obtenir au moins un retour sur ce qu'est l'erreur.

EDIT: En réponse à votre commentaire, je vous recommande de sortir vos données de trace dans un fichier que vous pouvez analyser. Je n'ai pas essayé cela moi-même, mais je l'ai vu recommandé. Pour votre web.config, ajouter quelque chose appelé TraceListener comme ceci:

<system.diagnostics> 
<trace autoflush="true"> 
<listeners> 
<add name="TestTracer" 
type="System.Diagnostics.TextWriterTraceListener, System, 
Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
initializeData="<app root directory>\Asptesttrace.log" /> 
</listeners> 
</trace> 
</system.diagnostics> 

Vous allez avoir besoin de jouer avec localement, je suis sûr. Par exemple, assurez-vous que la trace n'est pas visible pour le client (cela peut impliquer l'utilisation de la classe Trace pour activer ou désactiver la trace et modifier les flux dans lesquels elle est écrite).

+0

Désolé, j'aurais dû être plus précis. Aucune exception n'est levée, c'est juste que l'application ne fonctionne pas comme prévu. Donc, l'événement application_error ne m'aidera pas. –

+0

Dans ce cas, c'est beaucoup plus difficile :) Une seconde, laissez-moi éditer. – JoshJordan

1

Outre le commentaire de JoshJordan, vous pourrez peut-être utiliser Post Sharp pour tracer chaque fois qu'une méthode est saisie et ne quittez pas, et voir quelles valeurs sont à venir en elle ...

1

Vous pouvez toujours activer uniquement locale débogage, puis à distance sur le serveur et utiliser l'application.

Peut-être le moyen le plus rapide de voir votre problème.

1

Je voudrais essayer avec trace ASP.NET (http://www.4guysfromrolla.com/webtech/081501-1.shtml) pour la connexion rapide. Vous devrez ajouter des appels Trace.Write() dans votre code et vous pourrez voir le journal dans la page live elle-même (juste en naviguant). Pour une journalisation plus riche, vous pouvez utiliser log4net (il suffit de google "en utilisant log4net" et vous aurez beaucoup de liens utiles), qui est facilement configurable et vous permet d'envoyer des logs par email (ce qui est incroyablement pratique!).

Espérons que cela aide.

Questions connexes