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 원인에 부딪히지 마십시오.
나는 HttpWebrequest가 프록시 자동 검색을 시도한다는 이유가 있다고 생각한다. 그래서 그렇게 오래 걸리는 것이다. 루프에서이 프로그램을 실행하고 첫 번째 호출을 무시하고 평균을 얻을 수 있습니까? 시간은 얼마입니까? – feroze
- 프록시 자동 검색에 시간이 오래 걸리는 이유는 무엇입니까? – wal
네트워크 설정 및 다양한 이유로 인해 달라질 수 있습니다. DNS 해상도가 느리거나 프록시 서버가 autoproxy 스크립트를 보내는데 느리거나 스크립트에서 autoproxy 평가가 오래 걸릴 수 있습니다. 또는 프록시 서버 자체가 느립니다. system.net 로그 나 네트워크 추적을 얻지 않는 한 말하기는 어렵습니다. – feroze