title: HttpWebRequest.GetResponse: "The underlying connection was closed: An unexpected error occurred on a receive."
body: <p>I've written a C# Windows service (.NET Framework 3.5, C# 3.0) that posts files &amp; HTML form information to a remote server, and then stores the XML server response in a database.  Here is the main chunk of pertinent code:</p>
  
  <pre><code>    HttpWebRequest request = WebRequest.Create(postUrl) as HttpWebRequest;
  
      request.ProtocolVersion = HttpVersion.Version10;
      request.KeepAlive = false;
      request.Timeout = 600000;
      request.ReadWriteTimeout = 600000;
      request.Method = "POST";
      request.ContentType = contentType;
      request.UserAgent = userAgent;
      request.CookieContainer = new CookieContainer();
      request.ContentLength = formData.Length;
  
      using (Stream requestStream = request.GetRequestStream())
      {
          // Push it out there
          requestStream.Write(formData, 0, formData.Length);
          requestStream.Close();
      }
  
      return request.GetResponse() as HttpWebResponse;
  </code></pre>
  
  <p>My service works properly for all small files, but I get the following error when I try to send larger files (8-9 MB).</p>
  
  <pre><code>    The underlying connection was closed: An unexpected error occurred on a receive.
  </code></pre>
  
  <p>I looked at the outgoing request using Fiddler, and was able to glean the following info:</p>
  
  <pre><code>    HTTP/1.1 504 Fiddler - Receive Failure
      Content-Type: text/html
      Connection: close
      Timestamp: 12:25:04.067
  
      ReadResponse() failed: The server did not return a response for this request.
  </code></pre>
  
  <p>The failure occurs ~7 minutes after I call <b>request.GetResponse()</b>.  Is there any way to identify who shut down the connection?  And is there anything else I should try on my end to resolve this issue?  Thanks in advance!</p>