今天遇到同事一段脚本,通过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
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!