Сетевое программирование c # - HTTPWebRequest Scraping - PullRequest
0 голосов
/ 01 мая 2010

Я создаю веб-приложение для очистки. Он должен очистить сложный веб-сайт с одновременными запросами HttpWebRequest с одного хоста на один целевой веб-сервер.

Приложение должно работать на Windows server 2008.

Один запрос HttpWebRequest для данных может занять от 1 минуты до 4 минут (из-за длительных операций с БД)

У меня должно быть как минимум 100 параллельных запросов к целевому веб-серверу, но я заметил, что когда я использую более 2-3 длительных запросов, у меня возникают большие проблемы с производительностью (тайм-ауты запросов / зависание).

Сколько параллельных запросов я могу иметь в этом сценарии с одного хоста на один целевой веб-сервер? Могу ли я использовать Пулы потоков в приложении для параллельного выполнения запросов HttpWebRequest на сервер? у меня будут какие-либо проблемы с предельными значениями исходящих соединений / запросов HTTP? как насчет тайм-аутов запроса, когда я достигаю ограничений на исходящее соединение Какова будет лучшая настройка для моего сценария?

Любая помощь будет оценена.

Спасибо

1 Ответ

1 голос
/ 01 мая 2010

По умолчанию протокол HTTP ограничивает пользовательский агент 2 одновременными подключениями на сервер HTTP / 1.1. Это ограничение, которое вы используете.

Увеличьте лимит, установив

ServicePointManager.DefaultConnectionLimit.

Вы также можете установить его для точки обслуживания, установив

ServicePointManager.GetServicePoint(url).ConnectionLimit
...