2017-04-03 41 views
3

我們在大約10分鐘內按順序運行的許多PowerShell腳本中使用Invoke-WebRequest調用Invoke-WebRequest時出現'操作超時'

我們正試圖瞭解爲什麼,在某些罕見的情況下,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

如果你這樣做$response | get-member你可以看到HtmlWebResponseObject對象具有Dispose方法,所以你應該能夠做處置連接:

$response.Dispose() 

你已經完成了它之後。

+0

這很有趣。一個後續問題,當前的腳本至少有50個invoke-webrequest,就像我在原文中提到的那樣,它很少失敗。 Powershell或dotnet是否執行任何類型的tcp連接清理以及觸發此清理的內容?開始想知道爲什麼這不會更經常失敗。 – Lars