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

Перезагружаем 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 снова начнёт чудить, то скрипт автоматически перезапустит веб-сервер.

 

Похожие материалы

Установка IIS в Windows Server 2012 R2

Пришла задача поднять IIS на Windows Server 2012 R2 для CRM BPM Online от Terrasoft. Указанные ниже настройки достаточны для работы данной приблуды. Однако, пришлось также забраться в конфиги данной сторонней системы и кое что править руками. Но это уже не относится к установке IIS и опысываться здесь не будет.

Теги