“The underlying connection was closed: An unexpected error occurred on a send”
I can ping to vCenter server & can connect to vSphere Web Client. So, I checked for the $Error[0] for exception, it is likely to be a certificate error. But, when I checked the certificate by vSphere Web Client, it’s not going to be expired soon.
PowerCLI C:> $error[0] | fl * -Force
PSMessageDetails :
Exception : VMware.VimAutomation.Sdk.Types.V1.ErrorHandling.VimException.ViError: 7/22/2017 12:10:08 AM Connect-VIServer The underlying connection was closed: An unexpected error occurred on a send. —> System.Net.WebException: The underlying connection was
closed: An unexpected error occurred on a send. —> System.IO.IOException: The handshake failed due to an unexpected packet format.
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.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.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 —
So, I check the PowerCLI Connection Settings by the following command, See Fig-2.
Get-PowerCLIConfiguration | fl *
Now, I found that the connection is using the system proxy (marked in Fig-2). So, I check the system proxy settings.
Control Panel > Internet Options > Connections > LAN Settings > Proxy server and it is using 127.0.0.1 with 6289 port. See Fig-3.
So, the solution is we can disable the proxy or change the PowerCLI settings to use NoProxy and I’ll go with the latter. Use the following command. See Fig-4.
Set-PowerCLIConfiguration -Scope User -ProxyPolicy NoProxy
**Note: the “-Scope” parameter has the following options:
Session – changes are maintained for current opened PowerCLI session only
User – changes are permanent for current user only
AllUsers – changes are permanent for all users
Now, we can connect to vCenter successfully. See Fig-5