2012-09-22 3 views
1

J'ai un service WCF Restful hébergé dans mon application Windows.Comment déboguer un service WCF?

Les clients du service sont des applications mobiles.

Les clients appellent le service et les messages sont transmis à l'application et le travail est exécuté.

La question que je suis confronté est que l'application fonctionne très bien dans la plupart des cas. Mais cela ne fonctionne pas sur certaines machines et les paramètres réseau.

Pour donner une meilleure idée: L'application ne fonctionne pas sur la machine 1 connecté au routeur A. Maintenant que je change et le connecter au routeur B, la même application commence à travailler sur la même machine.

De même, l'application ne fonctionne pas sur machine1 connectés au routeur A. Maintenant que je change la machine et rester connectée à la même routeur, l'application fonctionne très bien.

Je n'arrive pas à comprendre le problème. Une idée sur la façon de déboguer ce problème?

Toute aide appréciée.

Répondre

5

je pourrais me tourner sur le traçage et le listage des messages dans le service WCF. Cela peut se faire dans le fichier web.config/app.config du service, plus facilement via l'outil de configuration du service WCF dans Visual Studio qui est disponible dans le menu Outils (remarque: une fois que vous avez ouvert cet outil une fois, vous pourrez pour le fermer, puis faites un clic droit sur votre fichier app/web .config et sélectionnez 'edit WCF configuration' dans le menu contextuel pour la durée de votre session Visual Studio et ouvrez le fichier automatiquement dans l'outil). Dans l'éditeur de configuration WCF, accédez à la section Diagnostics et vous pouvez activer le suivi et la journalisation des messages. Notez où les fichiers journaux sont créés et/ou ajustez le chemin vers un emplacement plus désiré. Je recommande également d'activer autoflush, de sorte que les informations sont écrites plus fréquemment dans les journaux. Vous souhaiterez peut-être faire un cycle du service après une session de suivi pour vous assurer que les fichiers journaux contiennent toutes les informations pertinentes.

Maintenant, appuyez sur le service de la configuration non de travail. Examinez les journaux à l'aide de svctraceviewer.exe que vous pouvez trouver dans votre dossier SDK sous les fichiers programme. Voyez si quelque chose saute sur vous dans les journaux, sinon purgez les fichiers journaux existants sur le serveur et examinez un ensemble de fichiers journaux à partir d'une session valide pour tenter de contraster les différences.

Voici un lien vers msdn en ce qui concerne le traçage WCF qui peut être utile: http://msdn.microsoft.com/en-us/library/ms730342.aspx

+0

Une autre chose qui peut être une possibilité pour vous est d'installer Visual Studio sur la machine du serveur ou d'installer le service de débogage à distance Visual Studio et tenter de se connecter à l'hôte de service sur le serveur. Afin de pouvoir entrer dans le code, vous devrez vous assurer que les binaires sur le serveur sont compilés et que les fichiers pdb sont présents. Consultez http://msdn.microsoft.com/en-us/library/y7f5zaaa(v=vs.100).aspx pour plus d'informations sur le débogage à distance. – codechurn

+0

Merci, il a vraiment été clair pour résoudre le problème. – Sandeep

0

Vous pouvez essayer d'utiliser un outil comme Fiddler pour examiner et comparer les messages échangés dans les différents environnements.

+0

Merci Joe. J'ai essayé la même chose mais les messages échangés étaient les mêmes sur les machines. – Sandeep

0

Pour atteindre votre but, vous pouvez activer le traçage pour votre service WCF. Il existe déjà un lien sur stackoverflow pour ce sujet.

How to turn on WCF tracing?

Questions connexes