Иногда исключение приводит к завершению работы application pool
. Я запускаю его вручную, но вопрос в том, как я могу автоматизировать это поведение в IIS 7.0
(Windows server 2008).
Проблема закрытия пула приложений ASP.NET
Ответы (3)
Если пул приложений умирает, следующий запрос ресурса, обслуживаемого этим пулом, автоматически перезапустит его. Однако, если у вас включена быстрая защита от сбоев в пуле приложений, и пул умирает больше раз, чем число, указанное в свойстве maximum failures, в течение интервала, заданного интервалом сбоев em>, вы получите сообщение 503 Служба недоступна. На этом этапе вам придется вручную перезапустить пул приложений.
Чтобы обойти это, либо отключите быструю защиту от сбоев для пула приложений, либо попробуйте увеличить количество сбоев в течение периода времени, а затем определите основную причину исключений, которые завершают работу пула приложений.
startMode
. Значение по умолчанию — onDemand
, которое запускает пул приложений при первом полученном HTTP-запросе. Вы пытались отключить защиту от быстрого отказа? Попробуйте это, а затем убедитесь, что ваш пул приложений запущен. Он все еще умирает? Какие ошибки, связанные с IIS, есть в журналах приложений и системных событий?
- person arcain; 27.01.2011
startMode
было добавлено в конфигурацию IIS 7.5, однако, если вы используете IIS 7, поведение по умолчанию для пула приложений эмулирует startMode = onDemand
, что должно быть указано в документе, на который я ссылался ранее.
- person arcain; 27.01.2011
откройте iis, выберите свой веб-сайт и справа увидите Действия.
в разделе «Обзор веб-сайтов» -> «Дополнительные настройки»
выберите Пуск Автоматически в значение true.
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.