执行Invoke-WebRequest时遇到以下错误消息。在网上发现,在命令之前需要添加以下命令,但错误仍然相同。
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
目前已知,要连接的服务器启用了TLS1.2(仅(,服务使用https,连接了防火墙,并连接了telnet服务名称443,执行PowerShell的服务器启用TLS1.0、1.1、1.2,PowerShell使用v4。0作为比较,我使用自己的计算机并成功执行InvokeWebRequest,但PowerShell是v5.1。我想知道这是否是PowerShell版本的问题?请帮忙,谢谢。
Invoke-WebRequest : The underlying connection was closed: An unexpected error occurred on a send.
At line:1 char:15
+ $WebConnect = Invoke-WebRequest -URI $strHTTPS -Credential $credential
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
在我的例子中,在运行一个简单的未经授权的Rest查询时出现意外错误后,添加了一个回调即使InvokeWebRequest不起作用,InvokeRestMethod也能起作用。
我提供了一个答案,解决了我们对这个确切错误消息的问题(可能会为某人节省很多时间(:在我们的案例中,问题是由于忘记了主机文件条目(来自测试阶段(,该条目凌驾于DNS映射之上。当网站尝试向自己调用WebRequest时,请求被定向到旧的(测试阶段(IP地址,因此失败。这尤其令人沮丧,因为同一服务器上的所有其他站点对InvokeWebRequest的响应都很好。