2011-09-12 15 views
8

Używam systemu Windows 7 Ultimate x64.WebRequest.GetResponse trwa długo, chyba że DefaultWebProxy ma wartość zerową

ja pierwszy miał Przeglądaj i znaleźć this gdzie mam „rozwiązanie” do publikacji, ale chciałby wiedzieć dlaczego - Nie chcę na null w DefaultWebProxy w przypadku, gdy istnieje uzasadnione proxy, który powinien należy użyć. (btw Jestem nie za proxy http)

Oto prosty test jednostkowy, który demostracji problemu.

[Test] 
    public void TestWebRequest() 
    { 
     //if I dont include the following line the request takes ~40 seconds. 
     WebRequest.DefaultWebProxy = null; 

     var httpRequest = WebRequest.Create("http://google.com");       

     var stopWatch = new Stopwatch(); 
     stopWatch.Start(); 
     using (var webResponse = httpRequest.GetResponse())//this is the line taking ages. 
     { 
      using (var sr = new StreamReader(webResponse.GetResponseStream())) 
       Trace.WriteLine(sr.ReadToEnd()); 
     } 
     stopWatch.Stop(); 
     Trace.WriteLine(string.Format("took {0} sec", stopWatch.Elapsed.TotalSeconds)); 
    } 

Czy możemy nie dać się ugryźć w przyczynach możliwych do zidentyfikowania.

+0

Myślę, że rozumowanie jest takie, że HttpWebrequest próbuje wykonać automatyczne wykrywanie proxy i dlatego zajmuje tak dużo czasu. Czy możesz uruchomić ten program w pętli i uzyskać avg, ignorując pierwsze wywołanie? Ile to jest czas? – feroze

+0

na pewno - dlaczego automatyczne wykrywanie proxy trwa tak długo? – wal

+0

Może to zależeć od konfiguracji sieci i z różnych przyczyn. Może się zdarzyć, że rozdzielczość DNS jest powolna, lub serwer proxy powoli wysyła skrypt autoproxy, lub ocena autoproxy ze skryptu zabiera dużo czasu. Lub sam serwer proxy działa wolno. Trudno powiedzieć, jeśli nie dostaniesz dziennika system.net lub śladu sieciowego – feroze

Odpowiedz

1

Widziałem to i wymagało to trochę odkrycia.

W moim przypadku zdarzyło się, że ktoś wprowadził "" (spacja) do pola proxy w opcjach połączenia internetowego i został włączony, aby używać serwera proxy.

To dziwne, ponieważ powoduje tylko duże opóźnienie w pierwszym uruchomieniu proxy, a po powrocie do ustawień internetowych nie pokazuje, że jest tam miejsce.

+0

brzydkich klientów !! – wal

Powiązane problemy