簡體   English   中英

system.Net.WebRequest-powershell-和“操作已超時”

[英]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

您將其設置為100的timeout屬性以毫秒為單位

太短了。 可能希望將其設置為幾秒鍾。

發生這種情況是因為服務器端實際花費的時間比該時間長。 它可能已經發送了200響應,但是整個請求在指定時間內沒有完成。 如果您一次發送許多請求,絕對有可能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM