2013-10-24 13 views
9

Tôi đang gọi một API trong Bộ điều khiển chỉ mục của tôi như thế này và mọi thứ hoạt động tốt, chỉ khi tôi mở Fiddler.Tại sao gọi API trong ASP.NET chỉ hoạt động nếu tôi có Fiddler mở?

public ActionResult Index() 
{ 
    Base model = null; 
    var client = new HttpClient(); 
    var task = 
     client.GetAsync(
     "http://example.api.com/users/john/profile") 
     .ContinueWith((taskwithresponse) => 
     { 
      var response = taskwithresponse.Result; 
      var readtask = response.Content.ReadAsAsync<Base>(); 
      readtask.Wait(); 
      model = readtask.Result; 
     }); 
    task.Wait(); 

    return View(model); 
} 

Nếu tôi đóng Fiddler tôi nhận được lỗi sau:

No connection could be made because the target machine actively refused it 127.0.0.1:8888

Có một số cấu hình tôi phải bao gồm, để gọi một tác phẩm API, ngay cả khi tôi không có Fiddler mở.

+3

127.0.0.1:8888 là địa chỉ proxy không hợp lệ của bạn. Bằng cách nào đó, một nơi nào đó ứng dụng ASP.Net của bạn vẫn đang sử dụng proxy fiddler của bạn làm proxy http của nó. Tìm ra nơi, và tắt nó đi. Nó có thể chỉ yêu cầu bạn khởi động lại IIS. – Aron

+0

Có bạn đã đúng. Tôi đã sử dụng giải pháp được đề xuất bởi RasmusW, và nó đã hoạt động. – mgiota

Trả lời

12

Kiểm tra web.config cho bất kỳ cấu hình proxy nào và cũng kiểm tra xem bạn đã định cấu hình proxy mặc định của hệ thống mà .net có thể sử dụng. Bạn có thể thêm địa chỉ này vào web.config để tắt cấu hình proxy:

<system.net> 
     <!-- set enabled to true to use the system default proxy --> 
     <defaultProxy enabled="false" /> 
    </system.net> 
+2

Cảm ơn. Điều này giải quyết vấn đề của tôi :-) – mgiota

+0

Cảm ơn bạn. Tôi đã làm điều này, nhưng sau đó tôi chỉ muốn biết thiết lập proxy này ở đâu. Bởi vì cài đặt Internet Explorer của tôi không trỏ đến bất kỳ proxy nào. Tìm thấy nó trong C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Config \ machine.config, tôi đã xóa nó từ đó và mọi thứ hoạt động tốt. Tôi nghĩ rằng Fiddler đã thêm vào điều này, bởi vì tôi không nhớ thêm nó ở tất cả! ... Hy vọng điều này sẽ không phá vỡ bất kỳ tính năng khó chịu nào! –

+0

Tôi không nghĩ rằng Fiddler thêm nó vào machine.config. Trên thực tế, blog Fiddler có một mục về [cách thêm nó theo cách thủ công] (http://www.telerik.com/blogs/capturing-traffic-from-.net-services-with-fiddler). – RasmusW

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