私は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の原因で動かないでください。
私は、HttpWebrequestがプロキシの自動検出を行おうとしていると推測していると思います。このプログラムをループで実行し、最初の呼び出しを無視して平均を取得できますか?時間はどれくらいですか? – feroze
- プロキシの自動検出に時間がかかるのはなぜですか? – wal
これは、ネットワークの設定やさまざまな理由によって異なる場合があります。 DNSの解決が遅い、またはプロキシサーバーがautoproxyスクリプトを送信するのが遅いか、スクリプトからのautoproxy評価に時間がかかることがあります。または、プロキシサーバー自体が遅いです。あなたがsystem.netのログやネットワークトレースを取得しない限り、難しいことです。 – feroze