2009-12-15 5 views
5

Ich bin sehr neu in WCF und SOAP Messaging, aber ich habe es geschafft, einen einigermaßen guten Client zusammenzustellen, mit dem ich Nachrichten von einer Medienorganisation herunterladen kann. Ich habe Proxy-Klassen generiert, die offensichtlich viel abstrahieren und meinen, dass ich im Grunde nur Objekte erstelle, Methoden aufrufe und Ergebnisse durchblättere.View rohe XML Anfrage

Mein Problem ist, dass ich rohe XML-Beispiele habe, wie die Aufrufe des Webdienstes aussehen sollten und ich in der Lage sein möchte, diese mit den Anrufen, die ich mache, zu vergleichen. Grundsätzlich muss ich sicherstellen, dass die Aufrufe, die ich mache, zu Testzwecken den XML-Beispieldateien entsprechen.

Macht das, was ich frage, Sinn, oder mache ich das falsch? Bitte lassen Sie mich wissen, wenn es irgendwelche notwendigen Informationen gibt, die ich weggelassen habe, ich könnte für Paragraphen pochen, bin mir aber nicht sicher, welche Informationen relevant sind.

Antwort

2

Haben Sie das Service Trace Viewer-Tool von Microsoft verwendet? This MSDN page wird Ihnen die Details zur Verwendung geben.

+0

Danke für die Antwort, Slugster. Ich werde mir das ansehen und werde zurückschreiben, wie ich gehe. – dave

2

Die Lager-Antwort für dieses ist, fiddler als ein Proxy zu benutzen - dieses erlaubt Ihnen, die ausgehenden Nachrichten und zwischen Ihrem Klienten und dem Service anzusehen.

noch nicht aus eigener Erfahrung sprechen, aber die Teammitglieder für mich entwickeln (in einem früheren Leben) haben - zu Recht - unser Service-Wrapper codiert up mit für die Verwendung eines Proxy-Unterstützung gebaut ausdrücklich Verwendung zu vereinfachen von Geiger.

+0

Danke für die Antwort. Das Problem bei der Verwendung von Fiddler ist, dass es sich um einen SSL-gesicherten Web-Service handelt, so dass es Probleme mit dem Web-Service gibt, die das Zertifikat von Fiddler nicht mögen, weil es eine nicht erkannte CA ist. Ich habe versucht, die Überprüfung des Serverzertifikats zu überschreiben, aber es ist etwas mit dem Webdienst passiert, das es überhaupt nicht mag. Die Antwort könnte sein, einfach weiterspielen mit diesem – dave

+0

Haben Sie versucht, Live HTTP-Header, ein Plugin von Firefox? Ich bin mir nicht sicher, ob es CA unterstützt, aber es lohnt sich, es zu versuchen. –

10

Mithilfe der WCF-Ablaufverfolgung können Sie die XML-Rohnachrichten protokollieren. Im Folgenden ist .config ermöglicht WCF mit roher Nachrichtenprotokollierung Tracing:

<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> 

Sie können mehr lesen über WCF von MSDN: Configuring Tracing Tracing.

Microsoft bietet Service Trace Viewer Tool zum Lesen von .svclog-Dateien.

Stellen Sie sicher, dass der in initializeData definierte Pfad von Ihrem Dienst beschreibbar ist.

0

Ich weiß nicht viel über WCF, aber man konnte die Verbindung zu einem anderen Web-Server in Ihrem Netzwerk umleiten, die den Körper irgendwo protokollierten. Auf diese Weise können Sie genau sehen, was Sie senden, aber einige Infrastrukturarbeiten erfordern. Dies könnte ein Webserver sein, der auf Ihrem Entwicklungscomputer ausgeführt wird.