Bagaimana caranya agar Fiddler berhenti mengabaikan lalu lintas ke localhost?

143

Saat menggunakan Fiddler untuk memantau Permintaan & Tanggapan HTTP di Internet Explorer, ia mengabaikan semua lalu lintas yang diarahkan ke http: // localhost .

Bukan dirimu sendiri
sumber
Saya pikir ini hanya masalah di IE <9, kan?
Josh Mouch
Hum ... lalu lintas localhost saya tidak diabaikan secara default dan saya mengujinya dengan IE 11 juga.
m3nda
Saya juga harus beralih dari IIS ke IIS Express
niico
Fiddler dulunya adalah alat yang hebat ini, tetapi sekarang ini hanya mimpi buruk konfigurasi.
The Muffin Man

Jawaban:

100

Untuk mendapatkan Fiddler untuk menangkap lalu lintas ketika Anda melakukan debug pada host lokal, setelah Anda menekan F5 untuk mulai menghilangkan perubahan alamat sehingga localhost memiliki "." setelah itu.

Misalnya, Anda mulai men-debug dan Anda memiliki URL berikut di bilah alamat:

http: // localhost: 49573 / Default.aspx

Ubah ke:

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

Tekan enter dan Fidder akan mulai mengambil lalu lintas Anda.

Bukan dirimu sendiri
sumber
3
Rasa manis. Sangat sederhana dan efektif.
Bradley Mountford
12
yang berfungsi untuk cassini .. bukan iis yang perlu Anda gunakan jika Anda terhubung ke situs atau layanan di SSL ...
user20358
Bagus! Bekerja dengan sempurna - tidak bisa lebih sederhana.
Narayan
1
Tidak berfungsi untuk saya menggunakan cygwin dan curl dengan perintah berikut: curl -X POST -H "application / json" -d '{"name": {"firstName": "eli", "lastName": "kool" }} 'localhost.:61444/Inbound/Catch
Ilia Koulikov
15
WebAPI tidak bekerja dengan localhost. katanya Bad Request - Hostname Tidak Valid
Pramod Jangam
90

Situs web Fiddler menjawab pertanyaan ini secara langsung.

Ada beberapa solusi yang disarankan, tetapi yang paling mudah adalah dengan menggunakan nama mesin daripada "localhost" atau "127.0.0.1":

http://machinename/mytestpage.aspx
Matt Dillard
sumber
Tidak yakin mengapa situs web Fiddler tidak menyarankan saran "menambahkan periode setelah localhost", yang menurut saya adalah yang terbaik. Ini terutama benar di beberapa lingkungan server tempat saya bekerja di mana localhost adalah satu-satunya hal yang dapat saya gunakan (karena kontrol ActiveX, izin, dan yang lainnya).
Josh Mouch
3
@JoshMouch Karena beberapa server web menolak localhost.sebagai nama host yang tidak valid.
Aaron Jensen
3
localhost.dan machinenameditolak dalam kasus saya.
The Muffin Man
2
Seperti dicatat, "localhost." tidak berfungsi di banyak API (atau 127.0.0.1). Saya menggunakan modifikasi " localhost.fiddler " yang berfungsi dengan baik untuk saya.
Vman
43

Jawaban yang benar adalah bahwa Fiddler tidak mengabaikan lalu lintas yang ditargetkan di Localhost, tetapi sebagian besar aplikasi hardcoded untuk mem-bypass proxy (yang merupakan salah satunya Fiddler) untuk permintaan yang ditargetkan ke localhost.

Oleh karena itu, berbagai solusi tersedia: http://fiddler2.com/documentation/Configure-Fiddler/Tasks/MonitorLocalTraffic

EricLaw
sumber
1
per April 2013: fiddler2.com/documentation/Configure-Fiddler/Tasks/… ps terima kasih untuk alat yang luar biasa Eric.
Pete
Menambahkan-a-periode-ke-akhir-localhost adalah trik terbaik, dan situs fiddler tidak menyebutkan itu.
Josh Mouch
Mencoba berbagai solusi lain di halaman ini: Menambahkan titik, mengubah nama host dari 'localhost "menjadi nama mesin saya. Tidak ada yang berhasil. Mengganti" localhost "dengan" ipv4.fiddler ", yang disebutkan dalam dokumen workarounds, berfungsi
Simon Tewsi
Dalam situasi di mana alamat disandikan dalam file proyek yang duduk di perpustakaan kode sumber, didistribusikan ke semua dev (pikirkan Mercurial / Git) dalam sebuah tim, atau bahwa semua dev tidak benar-benar memiliki fiddler solusi ini tidak realistis dan menyebabkan lebih banyak masalah daripada yang mereka pecahkan. Apa yang diperlukan adalah cara bagi fiddler untuk beroperasi yang berada di luar proyek dan karenanya tidak berdampak pada proyek atau konfigurasinya.
user2960136
39

Fiddler v4.5.1.0 akan memungkinkan Anda untuk mengganti "localhost" dengan "localhost.fiddler", dan menyajikan localhost sebagai nama host untuk server penerima yang berjalan pada mesin Anda.

Ini menghindari kesalahan "host tidak dikenal" ketika menghubungkan ke layanan WCF dengan server web bawaan yang digunakan studio visual.

yaitu Alih-alih http://localhost:51900/service.wcfAnda dapat menggunakanhttp://localhost.fiddler:51900/service.wcf

Jonathan
sumber
2
BEKERJA SEMPURNA! .. Karena konfigurasi jaringan pekerjaan saya, tidak ada saran lain yang berfungsi. Ini adalah satu-satunya trik yang berhasil untuk saya.
Zorthgo
@ Zorthgo Senang mendengar. :)
Jonathan
3

Menggunakan Fiddler v4.6 dan konfigurasi default tidak dapat melihat lalu lintas dari 'localhost'. Mencoba banyak saran di sini tetapi tidak ada yang berhasil.

Bantuan yang Diaktifkan -> Mengatasi Masalah dan dapat melihat lebih banyak permintaan. Sesi ditandai dengan font pemogokan dan alasan yang diberikan adalah 'Tersembunyi karena Status Bar> Filter Proses.'

Menemukan jawaban ini dari Eric Lawrence kepada orang yang memiliki masalah yang sama http://www.telerik.com/forums/fiddler-not-capturing-ios-traffic-even-though-echo-service-works

pada dasarnya yang harus dilakukan adalah: Lihatlah Bilah Status di bagian bawah jendela Fiddler, "baki" kecil kedua di bilah itu mungkin mengatakan sesuatu seperti "Peramban Web." Klik itu dan kemudian ubah ke "Semua Proses."

Bilah Status Fiddler

Riga
sumber
2

pastikan Monitor semua koneksi dicentang. itu tidak bekerja untuk saya mungkin port diffren saya perlu kamu melihat httprequest ke situs saya dari gmail situs saya pada win xp dan iis5 (mesin saya sendiri)

pengguna88064
sumber
2

Untuk Fiddler untuk menangkap lalu lintas dari localhost di IIS lokal, ada 3 langkah (Ini berfungsi di komputer saya):

  1. Klik Alat> Opsi Fiddler. Pastikan klien jarak jauh untuk terhubung diperiksa. Tutup Fiddler.

masukkan deskripsi gambar di sini

  1. Buat DWORD baru bernama ReverseProxyForPort di dalam KEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Fiddler2. Atur DWORD ke port 80 (pilih desimal di sini). Mulai ulang Fiddler.

masukkan deskripsi gambar di sini

  1. Tambahkan port 8888 ke alamat yang ditentukan di klien Anda. Misalnya localhost: 8888 / MyService / WebAPI / v1 /
ozanmut
sumber
Ya, pengaturan ini membuat fiddler berjalan sebagai proksi terbalik, sehingga ia meneruskan permintaan masuk ke port yang berbeda. Dalam contoh ini, permintaan akan diajukan ke port 8888 hingga 80.
ozanmut
Yang paling rumit bagi saya adalah sepenuhnya mengabaikan localhost dan mengirim semua lalu lintas lainnya untuk diproses oleh fiddler. Anda harus melewati localhost, TETAPI juga, mengecualikannya dengan fungsi Anda. (Anda dapat mencoba dengan menyembunyikan aturan 304 untuk tujuan pengujian.). Jadi saya akhirnya mengecualikannya dengan cara berikut 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"; }. Fungsi ini harus onBeforeRequest.
m3nda
1

Gunakan alamat IP lokal Anda (bukan 127.0.0.1) sebagai gantinya akan berfungsi, seperti 192.16.0.88 dll. Pergi ke cmd.exe dan ketik ipconfig dan Anda akan melihatnya.

teks alternatif

kode schrodinger
sumber
4
Sebenarnya tidak.
Nathan C. Tresch
Itu tidak bekerja. Tampaknya Anda tidak dapat terhubung ke alamat IP Anda sendiri secara lokal
zeocrash
0

Windows XP:

Pastikan Anda mengatur untuk mengklik tombol pengaturan untuk setiap item dalam kotak daftar "Dial-up dan Virtual Private Network" di tab "Connections" pada applet panel kontrol "Internet Options".

Saya perhatikan bahwa Fiddler akan berhenti menggunakan konfigurasi "pengaturan LAN" setelah saya terhubung ke VPN saya. Bahkan jika lalu lintas tidak melalui VPN.

Pengguna1
sumber
0
  • Ketik ipconfig pada prompt perintah.
  • Ini akan memberi Anda Alamat IPv4 Anda
  • Ganti localhost dengan Alamat IPv4 Anda di Url saat menekan layanan.

Lalu lintas akan muncul di Fiddler di bawah alamat IP komputer Anda.

Christian Findlay
sumber
-2

Pergi ke Alat, Opsi Fiddler ..., pilih tab Koneksi, lalu pastikan Monitor semua koneksi dicentang. Seperti kata Antony Scott, tetapi juga pastikan bahwa panel "Sesi Web" diatur ke "Menangkap" dan ["Browser Web" ATAU "Semua Proses"]. Sepertinya standarnya adalah "Non-Browser".

Marcus
sumber