Проблема закрытия пула приложений ASP.NET

Иногда исключение приводит к завершению работы application pool. Я запускаю его вручную, но вопрос в том, как я могу автоматизировать это поведение в IIS 7.0 (Windows server 2008).


person Xaqron    schedule 19.01.2011    source источник


Ответы (3)


Если пул приложений умирает, следующий запрос ресурса, обслуживаемого этим пулом, автоматически перезапустит его. Однако, если у вас включена быстрая защита от сбоев в пуле приложений, и пул умирает больше раз, чем число, указанное в свойстве maximum failures, в течение интервала, заданного интервалом сбоев, вы получите сообщение 503 Служба недоступна. На этом этапе вам придется вручную перезапустить пул приложений.

Чтобы обойти это, либо отключите быструю защиту от сбоев для пула приложений, либо попробуйте увеличить количество сбоев в течение периода времени, а затем определите основную причину исключений, которые завершают работу пула приложений.

Настройки быстрого отказа

person arcain    schedule 26.01.2011
comment
Он не перезапускается при следующем запросе. Можете дать ссылку? - person Xaqron; 27.01.2011
comment
@xaqron — Конечно, вот ссылка на значения по умолчанию для пула приложений IIS. . Особый интерес представляет свойство startMode. Значение по умолчанию — onDemand, которое запускает пул приложений при первом полученном HTTP-запросе. Вы пытались отключить защиту от быстрого отказа? Попробуйте это, а затем убедитесь, что ваш пул приложений запущен. Он все еще умирает? Какие ошибки, связанные с IIS, есть в журналах приложений и системных событий? - person arcain; 27.01.2011
comment
@xaqron — свойство startMode было добавлено в конфигурацию IIS 7.5, однако, если вы используете IIS 7, поведение по умолчанию для пула приложений эмулирует startMode = onDemand, что должно быть указано в документе, на который я ссылался ранее. - person arcain; 27.01.2011

alt textоткройте iis, выберите свой веб-сайт и справа увидите Действия.

в разделе «Обзор веб-сайтов» -> «Дополнительные настройки»

выберите Пуск Автоматически в значение true.

person Praneeth    schedule 19.01.2011
comment
Это уже верно, и речь идет о запуске веб-сайта на старте IIS. Мне нужно что-то, чтобы контролировать application pools и запускать их в случае сбоя. - person Xaqron; 20.01.2011

У меня аналогичная проблема в Windows Server 2012 Standard и IIS 8. URL-адреса с символом амперсанда в конце вызывают волнение IIS и считают их вредоносными. Это приводит к сбою пула приложений, что приводит к сбою веб-сайта.

Что вам нужно сделать, так это посмотреть в средстве просмотра событий 1309 событий. (В столбце «Идентификатор события») Вы можете настроить это с помощью планировщика заданий. Когда вы видите событие, вы перезапускаете пул приложений.

Чтобы перезапустить пул приложений, вы можете использовать скрипт .vbs следующим образом:

Set oWebAdmin = GetObject("winmgmts:root\WebAdministration") Set oAppPool = oWebAdmin.Get("ApplicationPool.Name='DefaultAppPool'") ' Повторно использовать пул приложений. oAppPool.Recycle

Или вы можете использовать Powershell, если вам это больше нравится.

Я использую довольно удобную программу на C#, которую нашел здесь: http://www.west-wind.com/weblog/posts/2012/Oct/02/A-tiny-Utility-to-recycle-an.-IIS-Application-Pool

Он отлично справляется со своей задачей и, кажется, решает некоторые проблемы с разрешениями, которые были у предыдущих двух методов. Однако мне нужно запустить этот скрипт от имени администратора.

Надеюсь это поможет. Это не решает проблему, но снимает напряжение до тех пор, пока не будет найдено решение этой проблемы с URL.

person Webnut    schedule 27.08.2013