2011-09-12 7 views
8

私はWindows 7 Ultimate x64を使用しています。WebRequest.GetResponse DefaultWebProxyがゼロにならない限り時間がかかります

私が最初にブラウズしていたと私は問題を「解決策」を得たが、なぜを知りたいのですthis見つけた - 私はがすべき正当なプロキシがある場合にはDefaultWebProxyをゼロにしたいいけないしを使用してください。 (btw私はで、httpプロキシの背後にはではありません)

ここでは、問題をデモンストレーションする単純な単体テストです。

[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

関連する問題