Comment déboguer les programmes WCF
Mon code utilise beaucoup de WCF appels et quand j'essaie de le corriger, il ne va pas le code de la fonction elle-même. Est-il un moyen de déboguer WCF code en quelque sorte?
source d'informationauteur Val
Vous devez vous connecter pour publier un commentaire.
Vous devez attacher le débogueur au processus que votre service wcf est en cours d'exécution.
Si dans iis, vous devez joindre à la correspondante de w3p.exe processus.
Si dans une application indépendante ou d'un service windows, fixez le nom de votre fichier exe.
Dans Visual Studio, dans le menu du débogueur, il y a un "attach to process". Ouvrir le code, définir un point d'arrêt, et appeler le service à l'origine de ce chemin de code à exécuter.
À l'extérieur de débogage à l'aide .net de traçage avec commutable niveaux est un bon moyen pour obtenir un aperçu de ce qui se passe. J'ai généralement de configuration du sys internes debugview à la couleur, mettre en évidence les erreurs et les avertissements et constamment en cours d'exécution lors de l'exécution de code ou de tests. Les lignes de couleur hors de ma vision périphérique tout en travaillant trouve des solutions.
Il y a un moyen beaucoup plus facile. Juste de lancer plusieurs processus dans Visual Studio. Cliquez-droit sur la Solution. Cliquez Sur Propriétés. Sélectionnez Démarrage Du Projet. Cliquez Sur Plusieurs Projets De Démarrage. Définir la WCF et les projets du Client à l'Action=Start. Maintenant, vous allez entrer par la WCF ainsi que le client.
Si vous êtes à la recherche de trace de la WCF activité pour voir si le trafic est généré dans le bon ordre, alors je vous recommande l'une des approches suivantes:
1) Utilisation fiddler pour regarder la WCF trafic.
2) Utiliser le WCF écouteur de suivi pour surveiller la réelle WCF appels. Ce qui est extrêmement utile lorsque vous essayez de déterminer les causes de l'erreur de sérialisation. Vous pouvez l'activer en ajoutant le bloc suivant à votre site web.config du bloc de configuration:
Double-cliquant sur le fichier généré permettra d'ouvrir le service WCF visionneuse du journal, qui permettra d'analyser le fichier pour vous et vous permettent d'accéder à des appels spécifiques et à voir les exceptions qui se produisent.
Pour déboguer un service WCF dans visual studio 2010, allez à la Debug -> Attacher au Processus. Cochez la case "Afficher les processus de tous les utilisateurs", et choisissez w3p.exe si vous utilisez IIS, ou le nom de l'application dans le cas contraire. Mettre un point d'arrêt, faire l'appel, et puis vous pouvez ensuite démarrer le débogage.
Si c'est une application web (je le recommande), vous pouvez cliquer droit sur le projet, allez dans l'onglet Web, et sous l'Action de Démarrage choisissez "Ne pas ouvrir une page, d'attente pour une demande à partir d'une application externe". Enregistrez et fermez ce paramètre, puis appuyez simplement sur la touche F5 pour démarrer le débogage.
Joindre le service lui-même, pas le code en l'appelant.
Lors de l'exécution d'une application qui accède à des services WCF, il y a souvent deux processus impliqués
Il semble que vous déboguez le processus client. Afin d'étape à travers le réel service WCF code, vous devez attacher le Débogueur Visual Studio pour le processus qui héberge le service et mettre un point d'arrêt dans le code.
Remarque: Visual Studio, vous pouvez le joindre à plusieurs processus simultanément, de sorte que vous pouvez déboguer votre code client et serveur dans la même session. Utilisation
Dans mon cas, j'ai mis la WCF Site
StartUp Project
dans Visual Studio et exécuter directement la WCF dans le Mode Debug,la FMC de l'élément dans la Solution Visual Studio Explorer est comme:
après WCF commencer, il y aura une nouvelle page web à afficher dans le navigateur, et de son url comme
http://xxxx:xxport/Service.svc
copiez cette uri et de l'utiliser dans un autre programme qui s'appel ce WCF,ensuite définir le point de rupture à la méthode d'appel de programme, le point d'arrêt sera entamé avec succès lorsque le programme s'exécute.