PowerShell 中的WebRequest 执行多次后超时


今天遇到同事一段脚本,通过WebRequest请求一个web页面,执行多次后就会卡住,并且提示超时:

Exception calling “GetResponse” with “0” argument(s): “The operation has timedout”

贴出脚本:

$r = [System.Net.WebRequest]::Create("https://www.pstips.net/") 
$startTime = Get-Date 
$resp = $r.GetResponse() 
$stopTime = Get-Date 
$ResponseTime = ($stopTime - $startTime).TotalMilliseconds 
$ResponseTime

打开控制台,复制代码执行2至3次,即可重现。
原因:Response占的资源没有释放,Response 实现了IDisposable接口。

解决方案:调用$resp.Close()方法,释放资源。

本文链接: https://www.pstips.net/webrequest-timeout-after-invoke-multiple-times.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注