Estoy utilizando Windows 7 Ultimate x64.WebRequest.GetResponse tarda mucho tiempo a menos que se anule DefaultWebProxy
que he tenido primero un navegar y conocer this donde me dieron la 'solución' al problema, pero me gustaría saber por qué - No quiero anular el DefaultWebProxy en caso de que haya un poder legítimo que debe ser utilizado. (Por cierto soy no detrás de un proxy HTTP)
Aquí hay una prueba de unidad simple que demuestra el problema.
[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));
}
Por favor, no nos atasquemos en causas identificables.
Creo que el razonamiento es que HttpWebrequest está tratando de hacer autodetección de proxy, y es por eso que lleva tanto tiempo. ¿Puedes ejecutar este programa en un bucle y obtener el avg, ignorando la primera invocación? ¿Cuánto es el tiempo? – feroze
seguro: ¿por qué tarda tanto la detección automática de proxy? – wal
Podría depender de la configuración de su red y debido a varias razones. Podría ser que la resolución de DNS sea lenta o que el servidor proxy demore en enviar el script de autoproxy, o que la evaluación de autoproxy del script tarde mucho. O el servidor proxy en sí mismo es lento. Es difícil decirlo a menos que obtengas un registro de system.net o un rastreo de red – feroze