title: Failure on HttpWebrequest with inner exception Authentication failed because the remote party has closed the transport stream
body: <p>Using C#, .Net 4.5, I'm trying to send out a web request through HttpWebRequest on a remote server. Please see the code below. 
  I tried most of the solutions suggested by some forums but I always end up with the same error. Please see the stack trace below.
  The error is thrown when calling the request.GetReponse() method.</p>
  
  <p>Additional info, basically, I'm trying to call the reloadSslCertificate function of vmware's vCenter component installed on a remote server. Currently, the error only happens on vCenter 5.5. It works fine in versions 5.1 and below.</p>
  
  <pre><code>        var uri = String.Format("https://{0}/some_url", serverName);
          var request = (HttpWebRequest)WebRequest.Create(uri);
          request.KeepAlive = true;
          request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
          request.Headers.Set(HttpRequestHeader.AcceptLanguage, "en-US,en;q=0.8");
          request.Credentials = credential;
          request.CookieContainer = cookieContainer;
  
  
          var response = request.GetResponse();
  </code></pre>
  
  <blockquote>
    <p>Exception : System.Net.WebException: The underlying connection was
    closed: An unexpected error occurred on a send. --->
    System.IO.IOException: Authentication failed because the remote party
    has closed the transport stream. at
    System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32
    readBytes, AsyncProtocolRequest asyncRequest) at
    System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer,
    AsyncProtocolRequest asyncRequest) at
    System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken
    message, AsyncProtocolRequest asyncRequest) at
    System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32
    count, AsyncProtocolRequest asyncRequest) at
    System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst,
    Byte[] buffer, AsyncProtocolRequest asyncRequest) at
    System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult
    lazyResult) at System.Net.TlsStream.CallProcessAuthentication(Object
    state) at
    System.Threading.ExecutionContext.RunInternal(ExecutionContext
    executionContext, ContextCallback callback, Object state, Boolean
    preserveSyncCtx) at
    System.Threading.ExecutionContext.Run(ExecutionContext
    executionContext, ContextCallback callback, Object state, Boolean
    preserveSyncCtx) at
    System.Threading.ExecutionContext.Run(ExecutionContext
    executionContext, ContextCallback callback, Object state) at
    System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result) at
    System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size) at
    System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size)
    at System.Net.ConnectStream.WriteHeaders(Boolean async) --- End of
    inner exception stack trace --- at
    System.Net.HttpWebRequest.GetResponse()</p>
  </blockquote>
  
  <p>Thanks in advance.</p>