调用 Invoke-WebRequest 时出错 'The operation has timed out'

Error 'The operation has timed out' when calling Invoke-WebRequest

我们在一些 PowerShell 脚本中使用了 Invoke-WebRequest,这些脚本在大约 10 分钟内按顺序 运行。

我们正在尝试了解为什么在极少数情况下会抛出 System.Net.WebException 消息:

The operation has timed out

阅读文章 Understanding MaxServicePointIdleTime and DefaultConnectionLimit 确实表明超时是由于达到连接限制。增加连接限制似乎不是解决问题根本原因的方法。

这让我们认为我们的脚本在完成后并没有释放所有资源。使用 Invoke-WebRequest 处理所有资源的推荐方法是什么?

我们目前正在做;

$response = Invoke-WebRequest -uri $uri_1 -ContentType $mime
// do stuff with $response variable

$response = Invoke-WebRequest -uri $uri_2 -ContentType $mime    
// do stuff with $response variable

如果你这样做 $response | get-member 你可以看到 HtmlWebResponseObject 对象有一个 Dispose 方法,所以你应该能够通过这样做来处理连接:

$response.Dispose() 

完成后。