C #: System.Net.WebException: se cerró la conexión subyacente

Tengo el siguiente código :

String url = // a valid url
String requestXml = File.ReadAllText(filePath);//opens file , reads all text and closes it
byte[] bytes = System.Text.Encoding.ASCII.GetBytes(requestXml);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Credentials = new NetworkCredential("DEFAULT\\Admin", "Admin"); 
request.ContentType = "application/xml";
request.ContentLength = bytes.Length;
request.Method = "POST";
request.KeepAlive = false;
Stream requestStream = request.GetRequestStream();
requestStream.Write(bytes, 0, bytes.Length);
requestStream.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
return new StreamReader(responseStream).ReadToEnd();

Durante el tiempo de ejecución, obtengo la siguiente excepción al intentar leer elHTTPWebResponse :

System.Net.WebException: se cerró la conexión subyacente: se produjo un error inesperado en una recepción.
---> System.IO.IOException: no se pueden leer los datos de la conexión de transporte: el software de su máquina host anuló una conexión establecida.
---> System.Net.Sockets.SocketException: una conexión establecida fue cancelada por el software en su máquina host
en System.Net.Sockets.Socket.Receive (buffer Byte [], desplazamiento Int32, tamaño Int32, SocketFlags socketFlags)
en System.Net.Sockets.NetworkStream.Read (buffer Byte [], desplazamiento Int32, tamaño Int32)
en System.Net.Sockets.NetworkStream.Read (buffer Byte [], desplazamiento Int32, tamaño Int32)
en System.Net.PooledStream.Read (buffer Byte [], desplazamiento Int32, tamaño Int32)
en System.Net.Connection.SyncRead (solicitud HttpWebRequest, Boolean userRetrievedStream, Boolean probeRead)

Respuestas a la pregunta(2)

Su respuesta a la pregunta