Ajustando o tempo limite de conexão HttpWebRequest em c #
Acredito que depois de longa pesquisa e pesquisa, eu descobri que o que eu quero fazer é, provavelmente, melhor servido através da criação de uma conexão assíncrona e terminá-lo após o tempo limite desejado ... Mas vou em frente e perguntar de qualquer maneira!
Snippet rápido de código:
HttpWebRequest webReq = (HttpWebRequest)HttpWebRequest.Create(url);
webReq.Timeout = 5000;
HttpWebResponse response = (HttpWebResponse)webReq.GetResponse();
// this takes ~20+ sec on servers that aren't on the proper port, etc.
eu tenho umHttpWebRequest
método que está em um aplicativo multiencadeado, no qual estou me conectando a um grande número de servidores da web da empresa. Nos casos em que o servidor não está respondendo, oHttpWebRequest.GetResponse()
está demorando cerca de 20 segundos para terminar, mesmo que eu tenha especificado um tempo limite de apenas 5 segundos. No interesse de passar pelos servidores em um intervalo regular, eu quero pular aqueles que levam mais de 5 segundos para se conectar.
Então a questão é:"Existe uma maneira simples de especificar / diminuir um tempo limite de conexão para um WebRequest ou HttpWebRequest?"