Wie kann ich Fiddler dazu bringen, den Datenverkehr zu localhost nicht mehr zu ignorieren?

143

Wenn Sie Fiddler zum Überwachen von HTTP-Anforderungen und -Antworten in Internet Explorer verwenden, wird der gesamte an http: // localhost gerichtete Datenverkehr ignoriert .

Nicht ich
quelle
Ich denke, das ist nur ein Problem in IE <9, oder?
Josh Mouch
Hum ... mein localhost-Verkehr wird von den Standardeinstellungen nicht ignoriert und ich teste ihn auch mit IE 11.
m3nda
Ich musste auch von IIS zu IIS Express wechseln
Niico
Früher war Fiddler dieses großartige Tool, jetzt ist es nur noch ein Alptraum für die Konfiguration.
Der Muffin-Mann

Antworten:

100

Damit Fiddler beim Debuggen auf einem lokalen Host Datenverkehr erfasst, ändern Sie die Adresse, nachdem Sie F5 gedrückt haben, um mit dem Deguggen zu beginnen, sodass localhost ein "" hat. Danach.

Zum Beispiel beginnen Sie mit dem Debuggen und haben die folgende URL in der Adressleiste:

http: // localhost: 49573 / Default.aspx

Ändern Sie es in:

http://localhost.:49573/Default.aspx

Drücken Sie die Eingabetaste und Fidder nimmt Ihren Datenverkehr auf.

Nicht ich
quelle
3
Süße. So einfach und effektiv.
Bradley Mountford
12
das funktioniert für cassini .. nicht iis, die Sie verwenden müssen, wenn Sie eine Verbindung zu einer Site oder einem Dienst über SSL herstellen ...
user20358
Nett! Perfekt funktioniert - einfacher geht es nicht.
Narayan
1
Hat bei mir mit cygwin und curl mit dem folgenden Befehl nicht funktioniert: curl -X POST -H "application / json" -d '{"name": {"firstName": "eli", "lastName": "kool" }} 'localhost.:61444/Inbound/Catch
Ilia Koulikov
15
WebAPI funktioniert nicht mit localhost. es heißt Bad Request - Ungültiger Hostname
Pramod Jangam
90

Die Website von Fiddler befasst sich direkt mit dieser Frage .

Es gibt mehrere vorgeschlagene Problemumgehungen, aber die einfachste besteht darin, einfach den Computernamen anstelle von "localhost" oder "127.0.0.1" zu verwenden:

http://machinename/mytestpage.aspx
Matt Dillard
quelle
Ich bin mir nicht sicher, warum Fiddlers Website nicht den Vorschlag "Hinzufügen eines Zeitraums nach localhost" vorschlägt, der meiner Meinung nach der beste ist. Dies gilt insbesondere in einigen Serverumgebungen, in denen nur localhost verwendet werden kann (aufgrund von ActiveX-Steuerelementen, Berechtigungen und so weiter).
Josh Mouch
3
@JoshMouch Da einige Webserver localhost.einen ungültigen Hostnamen ablehnen .
Aaron Jensen
3
localhost.und machinenamewird in meinem Fall abgelehnt.
Der Muffin-Mann
2
Wie bereits erwähnt, "localhost". funktioniert nicht auf vielen APIs (oder 127.0.0.1). Ich habe die Modifikation " localhost.fiddler " verwendet, die für mich perfekt funktioniert hat.
Vman
43

Die richtige Antwort lautet, dass Fiddler nicht den auf Localhost ausgerichteten Datenverkehr ignoriert, sondern dass die meisten Anwendungen fest codiert sind, um Proxys (von denen Fiddler einer ist) für Anfragen an localhost zu umgehen.

Daher stehen verschiedene Problemumgehungen zur Verfügung: http://fiddler2.com/documentation/Configure-Fiddler/Tasks/MonitorLocalTraffic

EricLaw
quelle
1
Stand April 2013: fiddler2.com/documentation/Configure-Fiddler/Tasks/… ps danke für das großartige Tool Eric.
Pete
Das Hinzufügen eines Zeitraums zum Ende des lokalen Hosts ist der beste Trick, und auf der Website von Fiddler wird dieser nicht erwähnt.
Josh Mouch
Versuchte die anderen verschiedenen Lösungen auf dieser Seite: Hinzufügen eines Punkts, Ändern des Hostnamens von 'localhost "in meinen Computernamen. Beides funktionierte nicht. Das Ersetzen von" localhost "durch" ipv4.fiddler ", das im Dokument zur Problemumgehung erwähnt wurde, funktionierte.
Simon Tewsi
In Situationen, in denen die Adresse in den Projektdateien codiert ist, die sich in einer Quellcodebibliothek befinden, an alle Entwickler (denken Sie an Mercurial / Git) in einem Team verteilt sind oder in denen alle Entwickler keinen Geiger haben, sind diese Lösungen unrealistisch und verursachen mehr Probleme als sie lösen. Was benötigt wird, ist eine Möglichkeit für Fiddler, außerhalb eines Projekts zu arbeiten und daher keine Auswirkungen auf das Projekt oder seine Konfiguration zu haben.
user2960136
39

Mit Fiddler v4.5.1.0 können Sie "localhost" durch "localhost.fiddler" ersetzen und localhost als Hostnamen für den auf Ihrem Computer ausgeführten Empfangsserver angeben.

Dies vermeidet "Host nicht erkannt" -Fehler beim Herstellen einer Verbindung zu WCF-Diensten mit dem von Visual Studio verwendeten integrierten Webserver.

dh anstelle von können http://localhost:51900/service.wcfSie verwendenhttp://localhost.fiddler:51900/service.wcf

Jonathan
quelle
2
FUNKTIONIERT PERFEKT! .. Aufgrund der Netzwerkkonfiguration meiner Arbeit funktionierte keiner der anderen Vorschläge. Dies ist der einzige Trick, der bei mir funktioniert hat.
Zorthgo
@Zorthgo Gut zu hören. :)
Jonathan
3

Bei Verwendung von Fiddler v4.6 und der Standardkonfiguration konnte kein Datenverkehr von 'localhost' angezeigt werden. Versuchte viele Vorschläge hier, aber nichts hat funktioniert.

Aktivierte Hilfe -> Fehlerbehebung und viele weitere Anfragen wurden angezeigt. Sitzungen wurden in einer durchgestrichenen Schrift markiert und der angegebene Grund war "Ausgeblendet aufgrund der Statusleiste> Prozessfilter".

Ich habe diese Antwort von Eric Lawrence an eine Person mit demselben Problem gefunden: http://www.telerik.com/forums/fiddler-not-capturing-ios-traffic-even-while-echo-service-works

Im Grunde ist Folgendes zu tun: Sehen Sie sich die Statusleiste am unteren Rand des Fiddler-Fensters an. Das zweite kleine "Fach" in dieser Leiste sagt wahrscheinlich etwas wie "Webbrowser". Klicken Sie darauf und wechseln Sie dann zu "Alle Prozesse".

Fiddler Statusleiste

Riga
quelle
2

Stellen Sie sicher, dass Alle Verbindungen überwachen aktiviert ist. Es funktioniert nicht für mich. Vielleicht ist der Port anders. Ich brauche httprequest für meine Website von Google Mail. Meine Website ist auf Win XP und iis5 (meinem eigenen Computer).

user88064
quelle
2

Damit Fiddler den Datenverkehr von localhost auf lokalem IIS erfassen kann, gibt es drei Schritte (auf meinem Computer hat es funktioniert):

  1. Klicken Sie auf Extras> Geigeroptionen. Stellen Sie sicher, dass die Option Verbindung von Remoteclients zulassen aktiviert ist. Fiddler schließen.

Geben Sie hier die Bildbeschreibung ein

  1. Erstellen Sie ein neues DWORD mit dem Namen ReverseProxyForPort in KEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Fiddler2. Stellen Sie das DWORD auf Port 80 ein (wählen Sie hier die Dezimalstelle). Starten Sie Fiddler neu.

Geben Sie hier die Bildbeschreibung ein

  1. Fügen Sie Port 8888 zu den in Ihrem Client definierten Adressen hinzu. Zum Beispiel localhost: 8888 / MyService / WebAPI / v1 /
Ozanmut
quelle
Ja, diese Einstellung bewirkt, dass der Geiger als Reverse-Proxy ausgeführt wird, sodass eingehende Anforderungen an einen anderen Port weitergeleitet werden. In diesem Beispiel werden Anfragen an Port 8888 an 80 weitergeleitet.
Ozanmut
Am komplexesten für mich war es, localhost vollständig zu ignorieren und den gesamten anderen Datenverkehr an Fiddler weiterzuleiten. Sie müssen localhost umgehen, ABER auch, es mit Ihren Funktionen ausschließen. (Sie können es zu Testzwecken mit der Regel hide 304 versuchen.) Also habe ich es auf folgende Weise ausgeschlossen if ((m_EnableProxy) && !(oSession.host =="127.0.0.1" || oSession.host =="localhost" || oSession.host =="ipv4.fiddler")) { oSession["X-OverrideGateway"] = "socks=127.0.0.1:8080"; oSession["ui-backcolor"] = "#EFEF9F"; }. Diese Funktion sollte onBeforeRequest sein.
m3nda
1

Verwenden Sie stattdessen Ihre lokale IP-Adresse (nicht 127.0.0.1), z. B. 192.16.0.88 usw. Gehen Sie zu cmd.exe und geben Sie ipconfig ein. Sie werden es sehen.

Alt-Text

Schrödingers Code
quelle
4
Eigentlich nicht.
Nathan C. Tresch
Es funktioniert nicht. Es scheint, dass Sie keine
lokale
0

Windows XP:

Stellen Sie sicher, dass Sie auf die Schaltfläche "Einstellungen" für jedes Element im Listenfeld "Einstellungen für DFÜ und virtuelle private Netzwerke" auf der Registerkarte "Verbindungen" des Applet-Bedienfelds "Internetoptionen" klicken.

Ich habe festgestellt, dass Fiddler die Konfiguration "LAN-Einstellungen" nicht mehr verwendet, sobald ich eine Verbindung zu meinem VPN hergestellt habe. Auch wenn der Datenverkehr nicht über das VPN geleitet wurde.

Benutzer1
quelle
0
  • Geben Sie an der Eingabeaufforderung ipconfig ein.
  • Sie erhalten Ihre IPv4-Adresse
  • Ersetzen Sie localhost durch Ihre IPv4-Adresse in der URL, wenn Sie den Dienst erreichen.

Der Datenverkehr wird in Fiddler unter der IP-Adresse Ihres Computers angezeigt.

Christian Findlay
quelle
-2

Gehen Sie zu Extras, Geigeroptionen ..., wählen Sie die Registerkarte Verbindungen und stellen Sie sicher, dass Alle Verbindungen überwachen aktiviert ist. Wie Antony Scott sagte, aber stellen Sie auch sicher, dass der Bereich "Websitzungen" auf "Erfassen" und ["Webbrowser" ODER "Alle Prozesse"] eingestellt ist. Der Standardwert ist "Nicht-Browser".

Marcus
quelle