Wie debugge / trace System.Web.Services.Protocols.SoapHttpClientProtocol.invoke (von Windows Mobile)?

8

Ich versuche, Web-Service von C # -Anwendung aufzurufen, aber ich bekomme eine Ausnahme:

%Vor%

Wie kann ich die Anfrage- und Antwortnachrichten un URL sehen? Mein Dienst läuft auf dem Desktop, aber der Client läuft unter Windows Mobile CE 6.x, das mobile Gerät ist über USB mit dem Desktop verbunden. Wahrscheinlich ist das der Grund, warum ich den HTTP-Verkehr in Wireshark oder Fiddler nicht sehe (ich habe beides versucht). Der Dienst funktioniert - ich kann es mit Postman überprüfen (Methode gibt korrekte und aussagekräftige Ergebnis-XML zurück).

    
TomR 14.11.2016, 12:29
quelle

3 Antworten

4

Sie können das Debugging für einige der Bibliotheken aktivieren, die intern die HTTP-Aufrufe durchführen (in meinem Fall sind es HTTPS, daher ist die Überprüfung über Wireshark unmöglich).

Sie sollten zu Ihrem app.config hinzufügen:

%Vor%

Dies fügt ein trace.log hinzu, wo Ihre exe läuft. Wenn Sie nicht wissen, wo Ihr Dienst ausgeführt wird, sollten Sie einen nicht relativen Pfad angeben können.

Außerdem werden bei der Ausführung des Codes in Visual Studio im Ausgabefenster (nicht in der Ausgabekonsole) dieselben Protokolle hinzugefügt.

p.s .: Sie können die Protokollebene in "Information" ändern, wenn Sie nur die Header der Anfrage und die Antworten und Informationen zum Öffnen und Schließen der Verbindung (in meinem Fall HTTPS) benötigen.

    
morhook 03.08.2017 03:07
quelle
3

Okay, das wird seltsam klingen, aber verwenden Sie das Standarddokument in IIS? Ich weiß, dass dies wahrscheinlich sollte nicht der Fall sein, aber wenn ich ein Standarddokument für die Website meines Web-Service eingerichtet habe und meine ServiceReference auf die gekürzte Adresse zeigte, konnte es ausgeführt werden ... aber nur lokal. Andernfalls würde ich denselben "Html anstelle von XML" -Fehler bekommen.

Die Fehlerbehebung in meinem Fall bestand darin, nicht mehr auf die verkürzte URL in der Service-Referenz zu verweisen und die vollständige URL (auch nicht die Standard-Dokumenteigenschaft für die Site) einzugeben.

    
Kevin 02.08.2017 19:32
quelle
2

Die einfachste und beste Methode zum Debuggen eines SOAP-Clients besteht darin, eine SOAP-Erweiterung zu erstellen, die die SOAP-Nachrichten protokolliert, die an und von einem Web-Service oder Web-Service-Client gesendet werden.

Codeproject hat ein gutes Tutorial, wie man das richtig macht: Effizientes Tracing mit SOAP-Erweiterungen in .NET

Und hier ist ein kürzerer MSDN-Artikel: Vorgehensweise: Implementieren eines SOAP Erweiterung

Es gibt auch kommerzielle SOAP-Debugger, die das Geld wert sind, wie der XML-Spion-SOAP-Debugger oder SOAPSonar , das Validierung und Aufruf durchführt.

Übrigens: Wenn Sie PHP oder Java verwenden würden, würden Sie grundsätzlich den gleichen Ansatz verwenden. p>     

wp78de 05.08.2017 21:02
quelle