2011-09-12 2 views
8

Windows 7 Ultimate x64를 사용하고 있습니다.WebRequest.GetResponse DefaultWebProxy가 0이 아닌 경우 시간이 오래 걸립니다.

내가 먼저 찾아보기를했고 나는이 문제에 대한 '솔루션'을 가지고 있지만, 왜알고 싶습니다 곳 this을 발견했습니다 - 가해야 합법적 인 프록시가 나는 그나마이 경우에 DefaultWebProxy을 null로 원하는을 사용하십시오. (btw 나는 이 아니며 http 프록시 뒤에이 없음)

다음은 문제를 demostrates하는 간단한 단위 테스트입니다.

[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)); 
    } 

IDisposable 원인에 부딪히지 마십시오.

+0

나는 HttpWebrequest가 프록시 자동 검색을 시도한다는 이유가 있다고 생각한다. 그래서 그렇게 오래 걸리는 것이다. 루프에서이 프로그램을 실행하고 첫 번째 호출을 무시하고 평균을 얻을 수 있습니까? 시간은 얼마입니까? – feroze

+0

- 프록시 자동 검색에 시간이 오래 걸리는 이유는 무엇입니까? – wal

+0

네트워크 설정 및 다양한 이유로 인해 달라질 수 있습니다. DNS 해상도가 느리거나 프록시 서버가 autoproxy 스크립트를 보내는데 느리거나 스크립트에서 autoproxy 평가가 오래 걸릴 수 있습니다. 또는 프록시 서버 자체가 느립니다. system.net 로그 나 네트워크 추적을 얻지 않는 한 말하기는 어렵습니다. – feroze

답변

1

나는 이것을 보았고 해결할 몇 가지 발견이있었습니다.

필자의 경우 인터넷 연결 옵션의 프록시 필드에 누군가 ""(공백)를 입력하고 프록시를 사용하도록 설정 한 경우입니다.

프록시의 첫 번째 시작에서만 오랜 지연이 발생하고 인터넷 설정으로 돌아 가면 거기에 공간이 있는지 또는 공간이 있는지 알 수 없으므로 기괴합니다.

+0

성가신 고객 !! – wal

관련 문제