错误'操作已超时'调用Invoke-WebRequest时

时间:2017-04-03 09:56:28

标签: powershell powershell-v3.0

我们在许多PowerShell脚本中使用Invoke-WebRequest,这些脚本在大约10分钟的时间内按顺序运行。

我们试图理解为什么在某些极少数情况下会抛出System.Net.WebException消息:

  

操作已超时

阅读文章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

1 个答案:

答案 0 :(得分:1)

如果您执行$response | get-member,则可以看到HtmlWebResponseObject对象具有Dispose方法,因此您应该可以通过执行以下操作来处置连接:

$response.Dispose() 

完成后。