Полагаю, что после длительных исследований и поиска я обнаружил, что, скорее всего, лучше настроить асинхронное соединение и завершить его после требуемого тайм-аута... Но я все равно буду спрашивать!
Быстрый фрагмент кода:
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.
У меня есть метод HttpWebRequest
, который находится в многопоточном приложении, в котором я подключаюсь к большому числу веб-серверов компании. В случаях, когда сервер не отвечает, HttpWebRequest.GetResponse()
занимает около 20 секунд до тайм-аута, хотя я указал время ожидания всего 5 секунд. В интересах прохождения через серверы на регулярной основе, я хочу пропустить те, которые занимают более 5 секунд для подключения.
Итак, возникает вопрос: "Есть ли простой способ указать/уменьшить тайм-аут соединения для WebRequest или HttpWebRequest?"