调用 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()
完成后。
我们在一些 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()
完成后。