Изменение уже использованного обработчика прокси .NET HttpClient может завершиться сбоем
Поддерживайте стабильную маршрутизацию прокси .NET при одновременных запросах, а не изменяйте свойства обработчика после использования.
Настройте маршрутизацию обработчика .NET до первого использования. Установка Proxy или UseProxy после начала запросов может вызвать InvalidOperationException.
| Изменение | Чего оно не даёт |
|---|---|
| Перезапись свойства использованного обработчика | Поддерживаемого переключателя маршрута в пределах запроса |
Изменение назначенного WebProxy.Address | Атомарного выбора для одновременных запросов или перемещения пулированных соединений |
Размещение глобального текущего значения внутри IWebProxy | Определённой политики параллелизма лишь за счёт перемещения состояния |
Для ограниченного набора маршрутов храните многоразовые клиенты/группы обработчиков, связанные с этими политиками, и выбирайте клиент перед отправкой. Пользовательский IWebProxy может принимать осознанные, безопасные для параллелизма решения, но изменяемое общее временное значение остаётся неоднозначным.
Ограничивайте клиенты маршрутов и выполняемую работу по назначениям, длительности, времени жизни соединения и лимитам ОС. Больше маршрутов добавляет пулы/сокеты, поэтому число прокси в бенчмарке не является гарантией пропускной способности.
Повторная попытка через другой прокси — это ещё одна ограниченная попытка со своим клиентом/результатом. При отправках сохраняйте вероятность того, что первый запрос был обработан до исчезновения его ответа.