Перейти к основному содержанию
 

Перезагружаем IIS при 500-й ошибке

IIS 10

Недавно мой сайт на Drupal 8 стал иногда валиться с 500-й ошибкой. Началось это с очередного обновления. Проблема, как мне кажется, связана с некорректной работой системы кеширования. Помогает перезагрузка IIS.

Надоело мне перезагружать IIS вручную, погуглил и написал простенький PowerShell скрипт, который проверяет стaтус URL. Если 500-я ошибка - перезагружает IIS командой iisreset.

$SITEURL = 'https://internet-lab.ru'

function Get-UrlStatusCode([string] $Url) {
    try
    {
        (Invoke-WebRequest -Uri $Url -UseBasicParsing -DisableKeepAlive).StatusCode
    }
    catch [Net.WebException]
    {
        [int]$_.Exception.Response.StatusCode
    }
}

$HTTP_Status = Get-UrlStatusCode $SITEURL

If ($HTTP_Status -eq 500) {
    # reset iis
    iisreset.exe
}

iis

В Планировщике заданий создаю расписание, для запуска скрипта раз в 10 минут.

iis

Если теперь Drupal 8 снова начнёт чудить, то скрипт автоматически перезапустит веб-сервер.