webentwicklung-frage-antwort-db.com.de

Verwendung von Fiddler zum Debuggen von Datenverkehr aus einer beliebigen App (z. B. C # / WPF-App)

Ich versuche zu debuggen, was mit meinen HTTP-Anfragen von eine andere Frage hier auf SO falsch ist . Also habe ich ein bisschen über Fiddler gelesen und wollte es nutzen, um mein Problem zu debuggen. Aber ich kann nicht scheinen, Verkehr von meiner WPF-Anwendung zu erhalten, um über Fiddler zu gehen. Ich glaube, ich muss einen Proxy konfigurieren. Ich verwende einen WebClient für ein einfaches Beispiel, aber ich denke, ich werde später eine WebRequest benötigen. Aber wie kann ich es jetzt mit einem einfachen WebClient über Fiddler schaffen (ich glaube, ich muss den Proxy auf localhost setzen: 8888)?

UPDATE:

Ich weiß nicht, ob ich das Richtige getan habe oder nicht, aber ich habe es versucht

var wc = new WebClient();
WebProxy proxy = new WebProxy();
proxy.Address = new Uri("http://localhost:8888");
wc.Proxy = proxy;

aber gescheitert - ich sehe keinen Verkehr in Fiddler

Ich habe es versucht ...

var wc = new WebClient();
WebProxy proxy = new WebProxy("127.0.0.1", 8888);
wc.Proxy = proxy;

immer noch nichts

37
Jiew Meng

Ich fand die Lösung unter diese Seite von fiddler2.com

Warum wird kein Verkehr an http://localhost Oder http://127.0.0.1? Gesendet?

Internet Explorer und .NET Framework sind fest codiert, um keine Anforderungen für Localhost über Proxys zu senden, und als Proxy erhält Fiddler keinen solchen Datenverkehr.

Die einfachste Lösung besteht darin, den Computernamen anstelle von Localhost oder 127.0.0.1 als Hostnamen zu verwenden. Besuchen Sie statt http://localhost:8081/mytestpage.aspx Beispielsweise http://machinename:8081/mytestpage.aspx.

52
Jiew Meng

Vielleicht etwas spät, aber ...

Ich umgehe dies einfach, indem ich einen "Punkt" an localhost anhänge. Anstatt also auf localhost zuzugreifen, versuche ich, auf localhost. Zuzugreifen (beachten Sie den Punkt am Ende des Hostnamens).

Kredit wo Kredit fällig ist: Ich habe diesen ungewöhnlichen Tipp von diesem Thread bekommen http://www.west-wind.com/weblog/posts/2009/Jan/14/Monitoring-HTTP-Output-with-Fiddler- in-NET-HTTP-Clients-und-WCF-Proxies # 596591

Funktioniert gut!

16
Lee Francis

Sie finden die Antwort in folgendem Beitrag https://stackoverflow.com/a/7506427/471499

es listet auf, dass Sie dies in Ihrer web.config hinzufügen müssen OR App.Config

<system.net>
  <defaultProxy>
    <proxy bypassonlocal="False" usesystemdefault="True" proxyaddress="http://127.0.0.1:8888" />
  </defaultProxy>
</system.net>
  1. starten Sie dann Fiddler auf demselben Computer wie die ausgeführte Anwendung.
  2. Klicken Sie auf Extras | Fiddler Options => Connections => Passe den Port als 8888 an. (Erlaube Remote, wenn du das brauchst.)
  3. Ok, dann über das Dateimenü den Datenverkehr erfassen.

Das ist alles, aber vergessen Sie nicht, die web.config-Zeilen nach dem Schließen des Fiddlers zu entfernen. Andernfalls tritt ein Fehler auf.

Referenz: http://fiddler2.com/documentation/Configure-Fiddler/Tasks/UseFiddlerAsReverseProxy

12
Tarek El-Mallah

Die ganze Zeit benutze ich die unten stehende Konfiguration, um die Netzwerk-HTTP-Aufrufe umzuleiten, damit sie von meinen Anwendungen über den Fiddler-Proxy weitergeleitet werden.

Dies funktioniert in allen Arten von .NET-Anwendungen (die entweder eine web.config - oder eine app.config - Datei haben) und in Fiddler ist es am besten, die Option Capture Traffic Zu deaktivieren, um die Erfassung des allgemeinen Datenverkehrs von allen zu vermeiden Anwendungen ausgeführt. Tastenkürzel dafür ist F12.

<system.net>
    <defaultProxy>
        <proxy proxyaddress="http://localhost:8888/" />
    </defaultProxy>
</system.net>

Dies ist eine wertvolle Konfiguration, wenn Sie über Assemblys von Drittanbietern verfügen, in denen Sie keine Chance haben, den Code zu ändern, der die URL aufruft.

Ich hoffe das hilft jemandem.

3
Harsh Baid

"IIS Express empfängt keinen Datenverkehr für Maschinennamen und leitet ihn stattdessen an localhost.fiddler weiter.

RobRich hat es richtig verstanden. Dies ist das einzige, was funktioniert, da ich nur IIS Express verwenden kann.

1
RandallTo