Invoke-WebRequest:基础连接已关闭:发送时发生意外错误



执行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的响应都很好。

最新更新