Ich bin ein Fremdanbieter .NET WebService in meiner Clientanwendung verbrauchen. Zu Debug-Zwecken möchte ich die SOAP-Requests erfassen, die von meinem Server gesendet werden. Wie würde ich das machen? Dies geschieht in .NET 2.0 ohne die Verwendung von WCF oder WSE..NET-Protokoll Soap-Anforderung auf Client
Antwort
Wenn es für Debug-Zwecke ist würde ich konfigurieren Sie einfach die Web-Anfrage einen Proxy zu verwenden und die gesamte Anfrage senden obwohl Fiedler (http://www.fiddlertool.com), dann können Sie genau sehen, was über den Draht übertragen wird immer.
Es gibt viele Optionen, die Sie verwenden können. Es gibt sicherlich einige kommerzielle Tools (wie SOAPScope), aber wenn Sie nur den rohen Inhalt der Anfragen/Antworten erfassen wollen, gibt es neben Fiddler noch einige andere Tools (die Walden bereits erwähnt hat).
Ich persönlich war lange Zeit Benutzer von Simon Fell TcpTrace und YATT.
Wenn Sie daran interessiert sind, den Code so zu instrumentieren, dass er es alleine macht (zB indem Sie alles auf eine Datei oder etwas protokollieren), dann sollten Sie in die Implementierung eines SoapExtension auf Ihrem Server schauen.
Sie können eine SoapExtension verwenden, um die Soap-Aufrufe zu protokollieren.
habe ich the Web Service, SOA and SOAP Testing Tool - soapUI mit gutem Erfolg in der Vergangenheit verwendet.
-Edoode
Ich schrieb einen Beitrag über das vor einer Weile dem Titel "Logging SOAP Messages in .NET".
Der einfachste Weg ist Verwenden Sie die Tools bereits mit .NET zur Verfügung gestellt.
1. erweitern die Klasse SoapExtension
.
2. Überschreibung der Methode ProcessMessage
eine vollständige Ausgabe Ihrer Soap Anfrage zu bekommen, dann Ausgabe dieser Informationen in einer Textdatei oder Ereignisprotokoll.
public class SoapMessageLogger : SoapExtension
{
//…
public override void ProcessMessage(SoapMessage message)
{
switch(message.Stage)
{
case SoapMessageStage.BeforeDeserialize:
LogResponse(message); break;
case SoapMessageStage.AfterSerialize:
LogResponse(message); break;
// Do nothing on other states
case SoapMessageStage.AfterDeserialize;
case SoapMessageStage.BeforeSerialize;
default: break;
}
}
//…
}
Vielleicht wireshark? Ich verwende es immer, um den Verkehr meiner Anwendungen zu erfassen.
- 1. Client auf Eingabe warten, Client - Server
- 2. DomainService: .Include() auf Client
- 3. Client-Bindung auf RadGrid
- 4. Firebase-Client auf ReactNative
- 5. selfTracking auf Client Fehler
- 6. Client auf Mule authentifizieren
- 7. MSBIN1 auf JAX-WS Client
- 8. .NET-Client-Profil auf x64
- 9. Client ssl Autorisierung auf node.js
- 10. SSL Handshake auf Java Client
- 11. jqGrid Sortierung auf Client-Seite
- 12. Filter jqGrid programmgesteuert auf Client?
- 13. Cookie auf Client-Anfrage OkHttp
- 14. Beispiele auf kubernetes golang client
- 15. HTTP-Client-Beispiel auf win32
- 16. GWT Base64 auf Client-Seite
- 17. Umzug auf Client-Seite, jQuery auf ASP.NET
- 18. C# Client zu Client Messaging
- 19. libGDX Client (Server) Client Verbindung
- 20. DNS-Auflösung basierend auf Client-IP
- 21. Client-seitige Entwicklungsplattformen basierend auf JavaScript
- 22. install svn client auf redhat RHEL5
- 23. Falscher Pfad zu SignalR generiert auf Client
- 24. Ligthswitch 2015 Bildschirmnavigation Bestellung auf HTML-Client
- 25. base_uri basiert nicht auf der Client-Instanziierung
- 26. WCF Vergleichen Sie Objekte auf dem Client
- 27. IIS nicht Website-Seiten auf Remote-Client
- 28. Javascript: Client-Seite ausfüllen Eingabefelder auf Serverseite
- 29. Verbindung auf Web-Service-Client schließen
- 30. starten X Windows auf Client-Rechner
Ich habe über 6 verschiedene Möglichkeiten, dies in Code zu tun, bevor aufgegeben und versuchen Geiger. Hätte ich darüber gelesen und gesehen, dass es verschlüsselten Verkehr unterstützt, hätte ich damit zuerst angefangen. – carson