2009-12-15 5 views
5

Je suis très novice en matière de messagerie WCF et SOAP, mais j'ai réussi à rassembler un client raisonnablement bon que j'utilise pour télécharger des nouvelles d'une organisation média. J'ai généré des classes de proxy qui, évidemment, ont beaucoup de caractère abstrait et signifient que je ne fais que créer des objets, appeler des méthodes et parcourir les résultats. Mon problème est que j'ai des exemples XML bruts de ce que les appels au service Web devraient ressembler et je veux être en mesure de «comparer» ceux-ci aux appels que je fais. Fondamentalement, je dois m'assurer que les appels que je fais sont les mêmes que les exemples de fichiers XML à des fins de test. Est-ce que ce que je demande a du sens ou est-ce que je vais à ce sujet dans le mauvais sens? S'il vous plaît laissez-moi savoir s'il y a des informations nécessaires que j'ai laissées de côté, je pourrais frapper pour des paragraphes mais je ne suis pas sûr de savoir quelle information est pertinente.Voir la requête XML brute

Répondre

2

Avez-vous utilisé l'outil Service Trace Viewer de Microsoft? This MSDN page vous donnera les détails sur la façon de l'utiliser.

+0

Merci pour la réponse, slugster. Je vais jeter un coup d'oeil à ceci et posterai comment je vais. – dave

2

La réponse stockée pour cela est d'utiliser fiddler comme un proxy - cela vous permettra d'afficher les messages entrants sortants et entre votre client et le service.

peut parler encore de son expérience personnelle, cependant les membres de l'équipe de développement pour moi (dans une vie antérieure) ont - à juste titre - codé nos enveloppes de services avec un support intégré pour l'utilisation d'un proxy explicitement pour simplifier l'utilisation de violoniste.

+0

Merci pour la réponse. Le problème avec l'utilisation de Fiddler est qu'il s'agit d'un service Web sécurisé SSL. Il y a donc des problèmes concernant le fait que le service Web n'aime pas le certificat de Fiddler car il s'agit d'une autorité de certification non reconnue. J'ai essayé de passer outre la validation du certificat de serveur, mais il se passe quelque chose avec le service Web qui ne lui plaît pas du tout. La réponse peut être de continuer à jouer avec ce – dave

+0

Avez-vous essayé les en-têtes HTTP Live, un plugin de Firefox? Je ne suis pas sûr si elle soutient CA, mais vaut la peine d'essayer. –

10

Vous pouvez utiliser le traçage WCF pour consigner les messages XML bruts. Ce qui suit est .config permet de tracer WCF avec l'enregistrement de message brut:

<configuration> 
    <system.serviceModel> 
    <diagnostics> 
     <messageLogging maxMessagesToLog="30000" 
       logEntireMessage="true" 
       logMessagesAtServiceLevel="true" 
       logMalformedMessages="true" 
       logMessagesAtTransportLevel="true"> 
     </messageLogging> 
    </diagnostics> 
    </system.serviceModel> 
    <system.diagnostics> 
    <sources> 
     <source name="System.IdentityModel" switchValue="Verbose" logKnownPii="true"> 
     <listeners> 
      <add name="xml" /> 
     </listeners> 
     </source> 
     <!-- Log all messages in the 'Messages' tab of SvcTraceViewer. --> 
     <source name="System.ServiceModel.MessageLogging"> 
     <listeners> 
      <add name="xml" /> 
     </listeners> 
     </source> 
     <!-- ActivityTracing and propogateActivity are used to flesh out the 'Activities' tab in 
      SvcTraceViewer to aid debugging. --> 
     <source name="System.ServiceModel" switchValue="Error, ActivityTracing" propagateActivity="true"> 
     <listeners> 
      <add name="xml" /> 
     </listeners> 
     </source> 
     <!-- This records Microsoft.IdentityModel generated traces, including exceptions thrown 
      from the framework. --> 
     <source name="Microsoft.IdentityModel" switchValue="Warning"> 
     <listeners> 
      <add name="xml" /> 
     </listeners> 
     </source> 
    </sources> 
    <sharedListeners> 
     <add name="xml" type="System.Diagnostics.XmlWriterTraceListener" initializeData="trace.e2e" /> 
    </sharedListeners> 
    <trace autoflush="true" /> 
    </system.diagnostics> 
</configuration> 

Vous pouvez en savoir plus sur WCF Tracing de MSDN: Configuring Tracing.

Microsoft fournit un Service Trace Viewer Tool pour lire les fichiers .svclog.

Assurez-vous que le chemin défini dans initializeData est accessible en écriture pour votre service.

0

Je ne sais pas beaucoup sur WCF, mais vous pouvez rediriger votre connexion à un serveur Web différent sur votre réseau connecté le corps quelque part. Cela vous permettrait de voir exactement ce que vous envoyez, mais nécessiterait un travail d'infrastructure. Cela pourrait être un serveur web fonctionnant sur votre machine de développement.

Questions connexes