Internally, each server is abstracted by the ServicePoint class. So, once you have created ServicePoint, explicitly or implicitly, it does not change.
In addition, it can cache the previous connection and use it for a subsequent request.
You can try to install
HttpWebRequest.KeepAlive = false
and
HttpWebRequest.ConnectionGroupName = String.Format ("connection- {0}", ++ index);
and see that this forces .NET to create a new connection every time.
If this does not work, try using the BindIPEndPointDelegate () method and bind it to the web request. Then, for each request, .NET will call this delegate to resolve the IP address of the endpoint, and you can do DNS.Resolve () on this one.
source share