使用C#,.Net 4.5,我试图通过远程服务器上的HttpWebRequest发送Web请求.请参阅下面的代码.我尝试了一些论坛建议的大多数解决方案,但我总是遇到同样的错误.请参阅下面的堆栈跟踪.调用request.GetReponse()方法时抛出错误.
其他信息,基本上,我正在尝试调用安装在远程服务器上的vmware的vCenter组件的reloadSslCertificate功能.目前,该错误仅发生在vCenter 5.5上.它在5.1及以下版本中工作正常.
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();
Run Code Online (Sandbox Code Playgroud)
异常:System.Net.WebException:基础连接已关闭:发送时发生意外错误.---> System.IO.IOException:身份验证失败,因为远程方已关闭传输流.System.Net.Security.SslState的System.Net.Security.SslState.StartReadFrame(Byte []缓冲区,Int32 readBytes,AsyncProtocolRequest asyncRequest)处于System.Net.Security.SslState的System.Net.Security.SslState.StartReceiveBlob(Byte []缓冲区,AsyncProtocolRequest asyncRequest). System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst,Byte [] buffer,AsyncProtocolRequest)上的System.Net.Security.SslState.StartSendBlob(Byte []传入,Int32计数,AsyncProtocolRequest asyncRequest)中的CheckCompletionBeforeNextReceive(ProtocolToken消息,AsyncProtocolRequest asyncRequest) System.Net.Security.SslState上的asyncRequest).
提前致谢.