Вы уверены, что это не вызвано ошибками на стороне сервера?
Кажется странным, насколько мне известно, веб-запрос на .net4 основан на IOCP на нижнем уровне, возможно, вы можете попытаться освободить ресурсы веб-запросов / ответов после каждого цикла.
Поскольку GetResponse () будет возвращать поток, если вы не читаете с него, реальные данные могут не передаваться с сервера на клиентскую сторону. (Я обнаружил это, когда пытаюсь проанализировать ответ, который использовал peek (), и он всегда возвращает недопустимое значение, пока не будет вызван read ().)
Итак, попробуйте прочитать или просто закройте его.