Tengo un problema con Webclient.WebClient es muy lento
Es muy lento. La descarga de String de un sitio web tarda entre 3 y 5 segundos. No tengo ningún problema de red.
Esta es mi Modifed cliente Web.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
namespace StatusChecker
{
class WebClientEx: WebClient
{
public CookieContainer CookieContainer { get; private set; }
public WebClientEx()
{
CookieContainer = new CookieContainer();
ServicePointManager.Expect100Continue = false;
Encoding = System.Text.Encoding.UTF8;
WebRequest.DefaultWebProxy = null;
Proxy = null;
}
public void ClearCookies()
{
CookieContainer = new CookieContainer();
}
protected override WebRequest GetWebRequest(Uri address)
{
var request = base.GetWebRequest(address);
if (request is HttpWebRequest)
{
(request as HttpWebRequest).CookieContainer = CookieContainer;
}
return request;
}
}
}
ACTUALIZACIÓN: En Wireshark he visto que la única DownladString está enviando y recibiendo paquetes pocos miles.
cliente Web no es especialmente lento, el problema debe estar en otra parte ... ¿Quizás el sitio web desde el que estás descargando es lento? –
debería intentar usar un registrador de tráfico como Wireshark para determinar si el retraso es de hecho entre los marcos de petición y respuesta individuales (causadas por la red/desaceleración servidor) o que está ocurriendo debido a que el código de cliente se está portando mal y el envío de demasiadas peticiones o algo así la lógica error. –
Ejecute también varias descargas en un bucle para "calentar" el proceso (elimine la carga de ensamblajes, por ejemplo). –