Внутри каждого сервера абстрагируется классом ServicePoint.Таким образом, после создания ServicePoint, явно или неявно, он не изменяется.
Кроме того, он может кэшировать предыдущее соединение и использовать его для последующего запроса.
Выможно попробовать установить
HttpWebRequest.KeepAlive = false
и
HttpWebRequest.ConnectionGroupName = String.Format ("connection- {0}", ++ index);
и посмотрите, заставляет ли это .NET каждый раз создавать новое соединение.
Если это не работает, попробуйте реализовать метод BindIPEndPointDelegate () иприкрепив его к веб-запросу.Затем для каждого запроса .NET будет вызывать этот делегат для разрешения IP-адреса конечной точки, и вы можете выполнить DNS.Resolve () в этом делегате.