Я пытаюсь написать скрипт для проверки работоспособности моего веб-приложения. Например, если я не смог получить сообщение в течение 10 секунд, я должен перезапустить свой пул приложений с помощью Powershell. Или, кроме 200-нормальных кодов, мой пул приложений должен быть переработан.
Пожалуйста, посмотрите ниже код и ОШИБКА:
# Load IIS module:
Import-Module WebAdministration
while ($true) {
write-host 'Runnig For Check app.xxx.com ...'
# First we create the request.
$HTTP_Request = [System.Net.WebRequest]::Create('https://app.xxx.com/')
Try
{
# We then get a response from the site.
$HTTP_Response = $HTTP_Request.GetResponse()
# We then get the HTTP code as an integer.
$HTTP_Status = [int]$HTTP_Response.StatusCode
If ($HTTP_Status -eq 200) {
Write-Host "Site is OK!"
}
Else {
Write-Host "The Site may be down, please check!"
Restart-WebAppPool -Name "app.xxx.com"
}
}
Catch
{
Stop-WebAppPool -Name "app.xxx.com"
Restart-WebAppPool -Name "app.xxx.com"
}
# Finally, we clean up the http request by closing it.
$HTTP_Response.Close()
Start-Sleep -Seconds 120
}
Ошибка:
Restart-WebAppPool: Вы должны запустить остановленный объект до того, как
перезапустить его. В C: \ Scripts \ CheckHealthHaydigo.ps1: 25 char: 6
+ Restart-WebAppPool -Name "app.xxx.com"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: InvalidOperation: (:) [Restart-WebAppPool], InvalidOperationException
+ FullyQualifiedErrorId: InvalidOperation, Microsoft.IIs.PowerShell.Provider.RestartAppPoolCommand