7
votes

Tracer l'enveloppe SOAP envoyée par un client de service Web .NET possible?

une application client C # Nous avons développé appelle un service Web de savon externe d'une tierce entreprise.

Maintenant, je veux retrouver les enveloppes de requête SOAP exactes générées par le proxy SOAP généré par VS.NET dans notre application et transféré sur le service Web de savon externe.

La méthode d'utilisation d'un moniteur réseau tel que WireShark (comme décrit ici ) Ou utiliser Microsoft Network Monitor n'est pas une option car le service Web Externl SOAP fournit uniquement une URL SSL / HTTPS, la charge utile des packages http est donc cryptée et non visible.

ma question est la suivante:

Y a-t-il un moyen de configurer les classes client Web de service Web intégrées .NET pour donner / suivre / enregistrer leurs demandes http sous-jacentes et leurs réponses générées / reçues? (Ou peut-être une sorte d'événement à souscrire à?)


1 commentaires

TCPmon peut faire ce que vous voulez. Je l'ai utilisé pour tracer les services Web Jax-WS.


3 Réponses :


3
votes

Vous pouvez utiliser Fiddler, peut-être, en tant que proxy et surveiller ainsi les demandes HTTP / HTTPS. Cela ne vous obligera pas à écrire un code de votre part.

FIDDler Web Debugger

Il convient de noter qu'il y a des mises en garde à déboguer des demandes HTTPS avec Fiddler. Cette page explique comment cela peut être fait.

FIDDler Web Debugger - Débogage du trafic HTTPS avec Fiddler2


0 commentaires

6
votes

Si vous utilisez un service Web standard (non WFC), vous pouvez étendre la classe Soapextension comme décrit ici:

http://www.blog.encoresystems.net/articles/how-a-capture-soap-envelopes-Quand-Consuming-a-web-service.aspx

Si vous utilisez WFC, vous pouvez implémenter iendpointBehavior et iClientMessageBehavior comme décrit ici:

http: / /weblogs.asp.net/paolopia/archive/2007/08/23/witing-a-wcf-message-inspector.aspx

J'utilise les deux, selon que j'utilise des références Web ou de service.


1 commentaires

+1 pour la soapextension, utilisée aussi avec succès. OP n'a pas mentionné s'il s'agissait de Web / Windows Client. Si Web, je ne crois pas que le code Soapextenstion dans le lien est WebSafe.