PowerShell WebRequest:发送时发生意外错误

时间:2017-06-20 16:04:16

标签: powershell

我对这篇文章提出了类似的问题

An Unexpected error occured on a send

我的问题略有不同,我实际上是从Windows服务器2012 R2上的服务器获得响应,但我的本地机器我正在

  

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

我知道服务器正在结束连接,或者超时太低是通过Microsoft的规定原因。这是两个不同的机器上的相同脚本,一个工作,一个不工作。我的本地机器是错误投掷者。

显然这不是我的脚本而不是我的本地主机的直接问题所以我希望有人可以提供一些见解,为什么这可以在服务器主机上工作而不是我的笔记本电脑在同一个域上?

如果我在本地使用try / catch,我看到的就是这个错误。如果我删除了try catch,我会得到完整的回复

Invoke-WebRequest : The underlying connection was closed: An unexpected error occurred on a send.
At C:\blah some directory Examples\blah\myscript.ps1:82 char:17
+     $response = Invoke-WebRequest -Headers $headers -Method GET -ContentType "ap ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

id: 67kjadsfj5029838k3ka70387fe400
state: active
[I get a response]

所以我实际上是从主机那里得到了一个带有请求数据的响应,所以我必须从我本地的try / catch中取出调用来获取它。显然不理想,我宁愿保持脚本不受干扰

最终,我希望有人能够提供一些见解,了解为什么我的本地机器上的powershell会抛出这个错误然后给我回复,我该如何压制或修复它?如果我能得到原因以及如何做到这一点,但我会在这一点上解决这个问题。

2 个答案:

答案 0 :(得分:1)

  

如何抑制或修复它?

如果您关注抑制错误消息,可以使用-ea 'Silently Continue' cmdlet上的-wa 'Silently Continue' / WGET args

答案 1 :(得分:0)

所以,我的程序经常崩溃,就像我使用的VS Code一样。即使在执行PowerShell的VS Code中,也必须右键单击>以管理员身份运行。一旦我这样做,错误就消失了。但是很好的回答TheIncorrigble1,我保留了你的榜样供将来参考