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
Ich fand die Lösung unter diese Seite von fiddler2.com
Warum wird kein Verkehr an
http://localhost
Oderhttp://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
Beispielsweisehttp://machinename:8081/mytestpage.aspx
.
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!
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>
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
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.
"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.