[英]system.Net.WebRequest - powershell - and 'The operation has timed out'
我需要問很多帶有powershell的url,並檢查狀態代碼
$Request = $null
$Request= [system.Net.WebRequest]::Create($Url)
$Request.Timeout = 100
$Request.AllowAutoRedirect = $true
try {
$Response = $Request.GetResponse()
} catch [System.Net.WebException] {
$someexception = $_.Exception.Message
}
$http_status = [int]$res.StatusCode
if ([int]$Response.StatusCode.value__ -ne 200) #если не 200 - алерт
{
$state = 'ERROR'
}
else
{
$state = 'OK'
}
$Request.Close
我嘗試以任何方式在服務器上使用它-通過手動測試可以,但是如果我運行很多腳本(在M $ SCOM中進行監視)-其中某些腳本將因操作超時而失敗
如果我將檢查問題網址-可以
為什么一次出現大量腳本會超時?如何調試? 它甚至是服務器日志中的http 200。
在創建請求之前, [System.Net.ServicePointManager]::DefaultConnectionLimit = 1024
。
太短了。 可能希望將其設置為幾秒鍾。
發生這種情況是因為服務器端實際花費的時間比該時間長。 它可能已經發送了200響應,但是整個請求在指定時間內沒有完成。 如果您一次發送許多請求,絕對有可能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.