ฉันจะทำให้พู้ทำเล่นเพื่อหยุดการจราจรใน localhost ได้อย่างไร?


144

เมื่อใช้ไวโอลินในการตรวจสอบคำขอและคำตอบใน Internet Explorer HTTP จะละเว้นการจราจรทั้งหมดนำไปhttp: // localhost


ฉันคิดว่านี่เป็นเพียงปัญหาใน IE <9 ใช่ไหม
Josh Mouch

Hum ... การรับส่งข้อมูล localhost ของฉันไม่ได้ถูกละเว้นโดยค่าเริ่มต้นและฉันทดสอบกับ IE 11 ด้วย
m3nda

ฉันต้องเปลี่ยนจาก IIS เป็น IIS Express
niico

Fiddler เคยเป็นเครื่องมือที่ยอดเยี่ยมนี้ แต่ตอนนี้มันเป็นแค่ฝันร้ายของการกำหนดค่า
มัฟฟินชาย

คำตอบ:


100

ในการรับ Fiddler เพื่อรับส่งข้อมูลเมื่อคุณทำการดีบั๊กในโฮสต์ท้องถิ่นหลังจากที่คุณกด F5 เพื่อเริ่มลดการเปลี่ยนแปลงที่อยู่เพื่อให้ localhost มี "" หลังจากที่มัน.

ตัวอย่างเช่นคุณเริ่มการดีบักและคุณมี URL ต่อไปนี้ในแถบที่อยู่:

http: // localhost: 49573 / Default.aspx

เปลี่ยนเป็น:

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

กด Enter และ Fidder จะเริ่มรับการเข้าชมของคุณ


3
ความหวาน ง่ายและมีประสิทธิภาพ
แบรดลีย์ Mountford

12
ใช้งานได้กับ Cassini .. ไม่ใช่ iis ที่คุณต้องใช้หากคุณกำลังเชื่อมต่อกับเว็บไซต์หรือบริการบน SSL ...
user20358

ดี! ทำงานอย่างสมบูรณ์แบบ - ไม่สามารถทำให้เรียบง่ายขึ้นได้
narayan

1
ไม่ทำงานสำหรับฉันโดยใช้ cygwin และ curl ด้วยคำสั่งต่อไปนี้: curl -X POST -H "application / json" -d '{"ชื่อ": {"firstName": "eli", "lastName": "kool" }} 'localhost.61444/
Inbound/Catch

15
WebAPI ไม่ทำงานกับ localhost มันบอกว่าคำขอไม่ดี - ชื่อโฮสต์ไม่ถูกต้อง
Pramod Jangam

90

เว็บไซต์ของ Fiddler ตอบคำถามนี้โดยตรง

มีวิธีแก้ไขปัญหาที่แนะนำหลายประการ แต่สิ่งที่ตรงไปตรงมาที่สุดคือเพียงใช้ชื่อเครื่องแทน "localhost" หรือ "127.0.0.1":

http://machinename/mytestpage.aspx

ไม่แน่ใจว่าทำไมเว็บไซต์ของ Fiddler ไม่แนะนำคำแนะนำ "เพิ่มช่วงเวลาหลังจาก localhost" ซึ่งฉันคิดว่าดีที่สุด นี่เป็นเรื่องจริงโดยเฉพาะอย่างยิ่งในสภาพแวดล้อมเซิร์ฟเวอร์บางอย่างที่ฉันทำงานในที่ซึ่ง localhost เป็นสิ่งเดียวที่ฉันสามารถใช้ได้ (เนื่องจากตัวควบคุม ActiveX สิทธิ์และอะไรก็ตาม)
Josh Mouch

3
@JoshMouch เนื่องจากเว็บเซิร์ฟเวอร์บางแห่งปฏิเสธlocalhost.ว่าเป็นชื่อโฮสต์ที่ไม่ถูกต้อง
แอรอนเซ่น

3
localhost.และmachinenameถูกปฏิเสธในกรณีของฉัน
ชายมัฟฟิ

2
ตามที่ระบุไว้ "localhost" ใช้งานไม่ได้กับหลาย API (หรือ 127.0.0.1) ฉันใช้การแก้ไข " localhost.fiddler " ซึ่งทำงานได้อย่างสมบูรณ์แบบสำหรับฉัน
Vman

43

คำตอบที่ถูกต้องคือไม่ใช่ว่า Fiddler เพิกเฉยต่อปริมาณข้อมูลที่กำหนดเป้าหมายที่ Localhost แต่เป็นแอพพลิเคชั่นส่วนใหญ่ที่ใช้ hardcoded เพื่อบายพาสพร็อกซี

ดังนั้นวิธีแก้ปัญหาต่าง ๆ ที่มีอยู่: http://fiddler2.com/documentation/Configure-Fiddler/Tasks/MonitorLocalTraffic


1
เมื่อวันที่เมษายน 2013: fiddler2.com/documentation/Configure-Fiddler/Tasks/ … ps ขอบคุณสำหรับเครื่องมือที่ยอดเยี่ยม Eric
Pete

add-a-period-to-the-end-of-localhost เป็นเคล็ดลับที่ดีที่สุดและเว็บไซต์ของนักไวโอลินไม่ได้พูดถึงสิ่งนั้น
Josh Mouch

ลองใช้วิธีแก้ไขปัญหาอื่น ๆ ในหน้านี้: การเพิ่มจุดเปลี่ยนชื่อโฮสต์จาก 'localhost "เป็นชื่อเครื่องของฉันไม่ทำงานแทนที่" localhost "ด้วย" ipv4.fiddler "ซึ่งกล่าวถึงในเอกสารการแก้ไขปัญหาทำงาน
Simon Tewsi

ในสถานการณ์ที่มีการเข้ารหัสที่อยู่ในไฟล์โครงการที่อยู่ในไลบรารีซอร์สโค้ดแจกจ่ายให้กับ devs ทุกคน (คิดว่า Mercurial / Git) ในทีมหรือว่า dev ทั้งหมดไม่มีตัวแก้ไขปัญหาเหล่านี้จะไม่สมจริงและทำให้เกิดมากขึ้น ปัญหามากกว่าที่พวกเขาแก้ปัญหา สิ่งที่จำเป็นคือวิธีการที่นักไวโอลินจะทำงานนอกโครงการดังนั้นจึงไม่มีผลกระทบต่อโครงการหรือการกำหนดค่า
2960136

40

Fiddler v4.5.1.0 จะอนุญาตให้คุณไปแทนที่ "localhost" ด้วย "localhost.fiddler" และแสดง localhost เป็นชื่อโฮสต์สำหรับเซิร์ฟเวอร์ที่รับที่ทำงานบนเครื่องของคุณ

หลีกเลี่ยงข้อผิดพลาด "ไม่รู้จักโฮสต์" นี้เมื่อเชื่อมต่อกับบริการ WCF ด้วยเว็บเซิร์ฟเวอร์ในตัวที่ Visual Studio ใช้

ie แทนที่จะ http://localhost:51900/service.wcfใช้http://localhost.fiddler:51900/service.wcf


2
ทำงานได้อย่างสมบูรณ์! .. เนื่องจากการกำหนดค่าเครือข่ายของงานของฉันไม่มีข้อเสนอแนะอื่น ๆ ที่ใช้งานได้ นี่เป็นเคล็ดลับเดียวที่เหมาะกับฉัน
Zorthgo

@ Zorthgo ดีใจที่ได้ยิน :)
Jonathan

8

Internet Explorer มีคุณสมบัติใหม่เนื่องจาก IE9 RC: การเพิ่ม<-loopback>ลงในรายการบายพาสพร็อกซีทำให้ WinInet (ไลบรารีเครือข่ายที่ใช้โดย IE) ส่งคำขอที่กำหนดlocalhostและ127.0.0.1ผ่านพร็อกซีที่กำหนด

นี่คือการประกาศดั้งเดิมโดย @EricLaw: http://blogs.msdn.com/b/fiddler/archive/2011/02/10/fiddler-is-better-with-internet-explorer-9.aspx


3

การใช้ Fiddler v4.6 และการกำหนดค่าเริ่มต้นไม่สามารถมองเห็นการรับส่งข้อมูลใด ๆ จาก 'localhost' ลองคำแนะนำมากมายที่นี่ แต่ไม่มีอะไรทำงาน

เปิดใช้งานความช่วยเหลือ -> แก้ไขปัญหาและสามารถดูคำขออื่น ๆ อีกมากมาย การประชุมถูกทำเครื่องหมายด้วยตัวอักษรการนัดหยุดงานและเหตุผลที่กำหนดคือ 'ซ่อนเนื่องจากแถบสถานะ> ตัวกรองกระบวนการ'

พบคำตอบนี้จาก Eric Lawrence ถึงผู้ที่มีปัญหาเดียวกัน http://www.telerik.com/forums/fiddler-not-capturing-ios-traffic-even-though-echo-service-works

โดยพื้นฐานแล้วสิ่งที่ต้องทำคือดูที่แถบสถานะที่ด้านล่างของหน้าต่าง Fiddler หน้าต่าง "ถาดเล็ก" ที่สองในแถบนั้นอาจพูดอะไรบางอย่างเช่น "เว็บเบราว์เซอร์" คลิกที่นั้นแล้วเปลี่ยนเป็น "กระบวนการทั้งหมด"

แถบสถานะ Fiddler



2

ตรวจสอบให้แน่ใจว่าได้ตรวจสอบการเชื่อมต่อทั้งหมดที่ทำเครื่องหมายไว้ มันใช้งานไม่ได้สำหรับฉันพอร์ตอาจแตกต่างฉันต้องการคุณเห็น httprequest ไปยังเว็บไซต์ของฉันจาก gmail เว็บไซต์ของฉันอยู่บน win xp และ iis5 (เครื่องของฉันเอง)


2

เพื่อให้นักจับภาพการรับส่งข้อมูลจาก localhost บน IIS ท้องถิ่นมี 3 ขั้นตอน (ทำงานบนคอมพิวเตอร์ของฉัน):

  1. คลิกเครื่องมือ> ตัวเลือกพู้ทำเล่น ตรวจสอบให้แน่ใจว่าอนุญาตให้ไคลเอนต์ระยะไกลเชื่อมต่อได้ ปิด Fiddler

ป้อนคำอธิบายรูปภาพที่นี่

  1. สร้าง DWORD ใหม่ชื่อ ReverseProxyForPort ภายใน KEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Fiddler2 ตั้งค่า DWORD เป็นพอร์ต 80 (เลือกทศนิยมที่นี่) รีสตาร์ท Fiddler

ป้อนคำอธิบายรูปภาพที่นี่

  1. เพิ่มพอร์ต 8888 ไปยังที่อยู่ที่กำหนดไว้ในไคลเอนต์ของคุณ ตัวอย่างเช่น localhost: 8888 / MyService / WebAPI / v1 /

ใช่การตั้งค่านี้ทำให้พู้ทำเล่นใช้งานเป็นพร็อกซีย้อนกลับซึ่งจะส่งต่อคำขอขาเข้าไปยังพอร์ตอื่น ในตัวอย่างนี้ส่งต่อคำร้องขอไปยังพอร์ต 8888 ถึง 80
ozanmut

สิ่งที่ซับซ้อนที่สุดสำหรับฉันคือการไม่สนใจ localhost และส่งทราฟฟิกอื่นทั้งหมดไปที่การประมวลผลโดยนักไวโอลิน คุณต้องข้าม localhost แต่ยังต้องแยกออกด้วยฟังก์ชั่นของคุณ (คุณสามารถลองซ่อนกฎ 304 เพื่อจุดประสงค์ในการทดสอบ) 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"; }ดังนั้นฉันสิ้นสุดไม่รวมมันด้วยวิธีดังต่อไปนี้ ฟังก์ชั่นนี้ควรเป็น onBeforeRequest
m3nda


1

ใช้ที่อยู่ IP ท้องถิ่นของคุณ (ไม่ใช่ 127.0.0.1) แทนที่จะใช้งานได้เช่น 192.16.0.88 เป็นต้นไปที่ cmd.exe แล้วพิมพ์ ipconfig แล้วคุณจะเห็น

ข้อความแสดงแทน


4
จริงๆแล้วมันไม่ได้
Nathan C. Tresch

มันไม่ทำงาน ดูเหมือนว่าคุณไม่สามารถเชื่อมต่อกับที่อยู่ IP ของคุณในเครื่องได้
zeocrash

0

Windows XP:

ตรวจสอบให้แน่ใจว่าได้คลิกปุ่มการตั้งค่าสำหรับแต่ละรายการในกล่องรายการ "การตั้งค่าแบบ Dial-up และ Virtual Private Network" ในแท็บ "การเชื่อมต่อ" ของแอปเพล็ตแผงควบคุม "ตัวเลือกอินเทอร์เน็ต"

ฉันสังเกตเห็นว่าพู้ทำเล่นจะหยุดใช้การกำหนดค่า "การตั้งค่า LAN" เมื่อฉันเชื่อมต่อกับ VPN ของฉัน แม้ว่าทราฟฟิกจะไม่ผ่าน VPN ก็ตาม


0
  • พิมพ์ ipconfig ที่พรอมต์คำสั่ง
  • มันจะให้ที่อยู่ IPv4 ของคุณ
  • แทนที่ localhost ด้วยที่อยู่ IPv4 ของคุณใน Url เมื่อกดปุ่มบริการ

ปริมาณการใช้งานจะแสดงใน Fiddler ภายใต้ที่อยู่ IP ของคอมพิวเตอร์ของคุณ


-2

ไปที่เครื่องมือตัวเลือกพู้ทำเล่น ... เลือกแท็บการเชื่อมต่อจากนั้นตรวจสอบให้แน่ใจว่าได้เลือกการเชื่อมต่อทั้งหมดแล้ว เช่นเดียวกับแอนโทนีสก็อตต์กล่าว แต่ก็ต้องแน่ใจว่าบานหน้าต่าง "Web Sessions" ถูกตั้งค่าเป็น "การจับภาพ" และ ["เว็บเบราว์เซอร์" หรือ "กระบวนการทั้งหมด"] ดูเหมือนว่าค่าเริ่มต้นคือ "ไม่ใช่เบราว์เซอร์"

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.