Ich habe einen WCF-Dienst, der einen komplexen Typ akzeptiert und einige Daten zurückgibt. Ich möchte Fiddler verwenden, um zu sehen, wie die eingehenden Anforderungen an den Dienst aussehen. Der Client ist eine .net-Konsolen-App, die einen Dienstreferenz-Proxy verwendet. Ist das mit Fiddler möglich? Ich bin neu in diesem Tool und habe es in der Vergangenheit nur verwendet, um Daten mit dem Request Builder zu veröffentlichen.
107
Antworten:
Sie müssen dies in Ihrer web.config hinzufügen
Das ist alles, aber vergessen Sie nicht, die Zeilen web.config nach dem Schließen des Geigers zu entfernen, denn wenn Sie dies nicht tun, wird ein Fehler ausgegeben.
Referenz: http://fiddler2.com/documentation/Configure-Fiddler/Tasks/UseFiddlerAsReverseProxy
quelle
http://
in der Proxy-Adresse anzugeben . Der Rest war der gleiche, wie Sie erwähnt haben.http://localhost/abc.svc
tohttp://HOSTNAME/abc.svc
Fiddler hört auf ausgehende Anfragen und nicht auf eingehende Anfragen, sodass Sie nicht alle Anfragen, die bei Ihrem Dienst eingehen, mithilfe von Fiddler überwachen können.
Das Beste, was Sie mit Fiddler erreichen können, ist die Möglichkeit, alle Anforderungen zu sehen, die von Ihrer Konsolen-App generiert werden (vorausgesetzt, die App generiert Webanforderungen, anstatt eine andere Pipeline zu verwenden).
Wenn Sie ein leistungsfähigeres (aber schwieriger zu verwendendes) Tool wünschen, mit dem Sie ALLE eingehenden Anforderungen überwachen können, sollten Sie sich WireShark ansehen.
Bearbeiten
Ich stehe korrigiert. Vielen Dank an Eric Law für die Veröffentlichung der Anweisungen zur Konfiguration von Fiddler als Reverse-Proxy !
quelle
Hatte gerade dieses Problem, was für mich funktionierte, war localhost.fiddler zu verwenden:
quelle
Konsolidierung der in Kommentaren / Antworten genannten Vorbehalte für mehrere Anwendungsfälle.
Siehe meistens http://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/ConfigureDotNETApp
In einer Konsolen-App müssen Sie möglicherweise nicht Folgendes angeben
proxyaddress
:In einer Webanwendung / etwas, das in IIS gehostet wird, müssen Sie Folgendes hinzufügen
proxyaddress
:HttpWebRequest
usw.), wird der Fiddler-Proxy für URLs, die URLs enthaltenlocalhost
, immer umgangen. Sie müssen daher einen Alias wie den Computernamen verwenden oder etwas in Ihrer Hosts-Datei erstellen (weshalb so etwas wielocalhost.fiddler
oderhttp://HOSTNAME
funktioniert)Wenn Sie das angeben
proxyaddress
, müssen Sie es aus Ihrer Konfiguration entfernen, wenn Fiddler nicht aktiviert ist. Andernfalls werden bei Anfragen Ihrer App eine Ausnahme ausgelöst:quelle
Sie müssen lediglich die Adresse im Konfigurationsclient ändern: Statt 'localhost' den Computernamen oder die IP-Adresse zu ändern
quelle
Dies ist unkompliziert, wenn Sie die Kontrolle über den Client haben, der die Kommunikation sendet. Sie müssen lediglich HttpProxy für die clientseitige Serviceklasse festlegen.
Ich habe dies beispielsweise getan, um einen Webdienst-Client zu verfolgen, der auf einem Smartphone ausgeführt wird. Ich habe den Proxy für diese clientseitige Verbindung auf die IP / den Port von Fiddler eingestellt, der auf einem PC im Netzwerk ausgeführt wurde. Die Smartphone-App hat dann die gesamte ausgehende Kommunikation über Fiddler an den Webdienst gesendet.
Das hat perfekt funktioniert.
Wenn Ihr Client ein WCF-Client ist, finden Sie in diesen Fragen und Antworten Informationen zum Festlegen des Proxys.
Selbst wenn Sie nicht in der Lage sind, den Code der clientseitigen App zu ändern, können Sie den Proxy möglicherweise administrativ festlegen, abhängig von dem von Ihrem Client verwendeten Webservices-Stack.
quelle
Standard WCF Tracing / Diagnose
Wenn Sie Fiddler aus irgendeinem Grund nicht zum Laufen bringen können oder die Anforderungen lieber auf andere Weise protokollieren möchten, können Sie auch die Standard-WCF-Ablaufverfolgungsfunktion verwenden. Dadurch wird eine Datei mit einem schönen Viewer erstellt.
Docs
Siehe https://docs.microsoft.com/en-us/dotnet/framework/wcf/samples/tracing-and-message-logging
Aufbau
Fügen Sie Ihrer Konfiguration Folgendes hinzu, stellen Sie sicher, dass sie
c:\logs
vorhanden ist, erstellen Sie sie neu und stellen Sie Anforderungen:quelle
Ich habe das Wire Shark Tool zur Überwachung von Serviceanrufen von der Silver Light App im Browser zum Service verwendet. versuchen Sie den Link gibt klare Informationen
Sie können damit den gesamten Anforderungs- und Antwortinhalt überwachen.
quelle
Ich habe gerade die erste Antwort von Brad Rem ausprobiert und bin zu dieser Einstellung in der web.config unter BasicHttpBinding gekommen:
Hoffe das hilft jemandem.
quelle
Sie können die kostenlose Version von HTTP Debugger verwenden.
Es ist kein Proxy und Sie müssen keine Änderungen in web.config vornehmen.
Es kann auch beides zeigen; eingehende und ausgehende HTTP-Anfragen. HTTP Debugger kostenlos
quelle