2015-11-10 3 views
0

Я создаю веб-искатель, который использует HttpWebRequest/HttpWebResponse.Web Crawler с HttpWebRequest/Response

Я борюсь через обычный материал, который Вы ожидали бы, что делать, что такие, как плохую разметку и иногда упали запросы попыток с использованием экспоненциальной выдержки, но обнаружили, что-то запутанное:

После определенного промежутка времени (или после запросов для определенного ресурса я еще не определил, какие еще) все запросы начинают отсчет времени. Я подозревал, что цель обхода запретила/заблокировала мой IP/useragent, и это было причиной, но если я остановлю свое приложение и запустим новый экземпляр, запросы пройдут просто отлично ... на определенный интервал, затем возобновите расчет времени.

Есть ли что-то внутреннее для HttpWebRequest/Response, которое может вызвать это? Я установил KeepAlive Requests в false, если это была проблема, но это, похоже, не помогло.

ответ

0

Проблема закончилась тем, что была .net-ошибка в том, как работает HTTP 1.1 Connection: keep-alive. Хост может остановить соединение, и .net считает, что он все еще подключен. Переключение на HTTP 1.0 исправило проблему.