2013-06-07 29 views
8

Gần đây tôi đã cài đặt Fiddler mới nhất (Fiddler4) và hoàn toàn không có gì mà tôi cố gắng làm để thu hút lưu lượng truy cập cục bộ. Tôi có một ứng dụng MVC được kết nối với một ứng dụng MVC WebAPI cả chạy trên IIS, đây là những gì tôi đã cố gắng:Không thể nhận Fiddler để lưu lượng truy cập cục bộ vào IIS

  • Fiddler Options> Connections> Màn hình All Connections & Sử dụng PAC Script
  • Thay đổi WebClient C# gọi điện để sử dụng các URL sau không thành công:
  • Thay đổi của tôi "Website mặc định" trong IIS để chạy theo một AppPool mới sử dụng tài khoản địa phương của tôi, và chạy Fiddler as administrator
  • thêm <system.net> <defaultProxy> <proxy bypassonlocal="False" usesystemdefault="True" /> </defaultProxy> </system.net> để web.config của tôi về ứng dụng MVC.

Không có gì hiệu quả, tôi không biết nên thử làm gì. Bất cứ lời khuyên nào cũng đươc đánh giá cao. Cảm ơn, Shawn

+1

Chính xác bạn không thể chụp được gì? Các yêu cầu từ trình duyệt của bạn đến ứng dụng MVC, API Web gọi rằng ứng dụng MVC thực hiện hoặc cả hai? Các ứng dụng được lưu trữ như thế nào? Bạn đã thử xác định địa chỉ proxy Fiddler một cách rõ ràng là ''? – CodeCaster

+0

Hi CodeCaster, tôi đang cố gắng nắm bắt các cuộc gọi API Web từ ứng dụng MVC, không phải lưu lượng truy cập của trình duyệt đến ứng dụng MVC. Cả hai ứng dụng được lưu trữ trong IIS dưới trang web mặc định là các ứng dụng ảo. Các thiết lập proxy duy nhất tôi thay đổi trong web.config là những gì tôi có ở trên. – pharophy

+0

Câu hỏi của tôi thực sự là một gợi ý. – CodeCaster

Trả lời

7

Hóa ra tôi cần thiết để thiết lập Fiddler như một proxy ngược lại (http://fiddler2.com/documentation/Configure-Fiddler/Tasks/UseFiddlerAsReverseProxy). Tôi không thực sự hiểu tại sao trước khi tôi nâng cấp từ Fiddler2 lên Fiddler4 tôi không phải làm điều này. Tôi đã từng sử dụng http://ipv4.localhost/app-name và tất cả đều hoạt động tốt. Để có được nó làm việc với Fiddler4, mặc dù, tôi thiết lập proxy ngược lại, và sau đó thay đổi tất cả các yêu cầu của tôi từ http://ipv4.localhost/app-name đến http://machinename:8888/app-name. Bây giờ tôi có thể nghe thông tin liên lạc giữa các ứng dụng. Bất kỳ ý tưởng tại sao tôi không phải làm điều này với Fiddler2, nhưng bây giờ tôi làm sau khi nâng cấp lên Fiddler4?

+0

Hoàn toàn không có gì khác biệt giữa Fiddler2 và Fiddler4 về vấn đề này. Một cái gì đó khác trong môi trường của bạn đã thay đổi. (Bạn có chắc là bạn không có bộ lọc? Trợ giúp> Khắc phục sự cố Bộ lọc) – EricLaw

+0

Ah Tôi thậm chí không biết điều này đã tồn tại, cảm ơn! – pharophy

+3

"Hoàn toàn không có gì khác biệt giữa Fiddler2 và Fiddler4" .. vậy. tại sao một người làm việc và người khác thì không, – Dan

0

Hãy thử thêm một kỷ lục trong file host của bạn (c: \ windows \ system32 \ drivers \ etc \ hosts), như:

127.0.0.1 mysite.local 

Sau đó bạn sẽ cần một ràng buộc trong của bạn trang web trong IIS để phù hợp.

Sau đó sử dụng http://mysite.local/

+0

Tôi nhận được nó làm việc trước khi tôi nhận được câu trả lời của bạn, điều này có vẻ như nó có thể đã làm việc mặc dù, nhưng tôi đã không được thử nghiệm. – pharophy

1

Các giải pháp đáng tin cậy dễ nhất mà tôi biết để capture lưu lượng phi WebBrowser là để xác định một cách rõ ràng cổng Fiddler như proxy cho các yêu cầu web. Tùy thuộc vào yêu cầu mã của bạn là làm cho mã sẽ trông tương tự như:

request.Proxy = new WebProxy("127.0.0.1", 8888) 

Lưu ý: đừng quên để chạy Fiddler với "chụp" và "Tất cả Process" (hiển thị trong thanh trạng thái của Fiddler)

+0

Tôi đã làm một cái gì đó tương tự như thế này, xem câu trả lời của tôi. Hóa ra tôi không có Fiddler thiết lập như một proxy ngược lại và tôi cần. Bất kỳ ý tưởng tại sao tôi phải làm điều này với Fiddler4, nhưng khi tôi có Fiddler2 nó làm việc mà không cần cấu hình thêm? – pharophy

0

Hãy thử sử dụng http://machinename./page

tức là .. thử đặt dấu chấm câu vào tên máy và duyệt.

+0

vì lý do nào đó IIS trả về yêu cầu 400 Xấu khi tôi thử ".". – pharophy

2

Tôi biết bạn đã đề cập điều này trong OP của bạn, nhưng điều này làm việc cho tôi và rất đơn giản để làm, vì vậy tôi nghĩ tôi sẽ chia sẻ trong trường hợp những người khác chạy vào cùng một vấn đề và không muốn gặp rắc rối thiết lập proxy ngược nếu họ không cần.


tôi để làm việc này bằng cách đơn giản thay đổi IIS Application Pool mà giao thông tôi muốn kiểm tra để chạy theo danh tính của tôi, kể từ khi Fiddler dường như chỉ capture lưu lượng của người dùng đăng nhập bằng cách mặc định. Chỉ cần chắc chắn rằng người dùng của bạn có tất cả các quyền cần thiết theo yêu cầu của IIS; Tôi là quản trị viên nên đây không phải là vấn đề đối với tôi. Và tất nhiên, đừng quên thay đổi nhận dạng IIS Application Pool khi bạn hoàn thành. Tất nhiên, tùy chọn khác là đăng nhập với tư cách người dùng mà IIS Application Pool đang chạy (nếu nó không phải là tài khoản dịch vụ như Network Service) và sau đó chạy Fiddler khi đăng nhập với tư cách người dùng khác.

+0

Đây là cách dễ nhất để thực hiện điều này –

Các vấn đề liên quan