Виснет pool в IIS, код события 1000 и WAS 5011

Виснет pool в IIS, код события 1000 и WAS 5011

IIS код события 1000

Добрый день уважаемые подписчики и гости сайта Pyatilistnik.org, не так давно мы установили и настроили сайт на веб сервере IIS, время идет и в процессе эксплуатации могут появляться ошибки, так в моем случае я словил ошибку с кодом 1000 "Имя сбойного приложения: w3wp.exe 0xc0000374" или событие 1023 "Процесс был завершен из-за внутренней ошибки среды выполнения .NET по IP-адресу 746F74E0 (746E0000) с кодом выхода 80131506", и не могу не включить сюда предупреждение WAS 5011 "Процесс, обслуживающий пул приложений "VIRT123_01", обнаружил неустранимую ошибку связи со службой активации Windows. Идентификатор процесса "7560". Поле данных содержит номер ошибки"

Описание ошибок: 1000, 1023, 8013150 и WAS 5011

Давайте для начала я покажу наглядно все ошибки подробно, напоминаю найти их можно в просмотре событий Windows.

Процесс, обслуживающий пул приложений "VIRT01", обнаружил неустранимую ошибку связи со службой активации Windows. Идентификатор процесса "7560". Поле данных содержит номер ошибки.

WAS 5011

Приложение: w3wp.exe
Версия платформы: v4.0.30319
Описание. Процесс был завершен из-за необработанного исключения.
Сведения об исключении: System.AccessViolationException
в System.Collections.Concurrent.ConcurrentDictionary`2[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=]]..ctor()
в P.Data.ServiceStatsWriter.timerCallback(System.Object)
в System.Threading.TimerQueueTimer.CallCallbackInContext(System.Object)
в System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
в System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
в System.Threading.TimerQueueTimer.CallCallback()
в System.Threading.TimerQueueTimer.Fire()
в System.Threading.TimerQueue.FireNextTimers()
в System.Threading.TimerQueue.AppDomainTimerCallback()

Событие 1026

Приложение: w3wp.exe
Версия платформы: v4.0.30319
Описание. Процесс был завершен из-за внутренней ошибки среды выполнения .NET по IP-адресу 746F74E0 (746E0000) с кодом выхода 80131506.

Событие 1023

Имя сбойного приложения: w3wp.exe, версия: 8.5.9600.16384, метка времени: 0x52157ba0
Имя сбойного модуля: ntdll.dll, версия: 6.3.9600.18696, метка времени: 0x5915ecd6
Код исключения: 0xc0000374
Смещение ошибки: 0x000e61f4
Идентификатор сбойного процесса: 0x2cd4
Время запуска сбойного приложения: 0x01d33c8a9b
Путь сбойного приложения: C:\Windows\SysWOW64\inetsrv\w3wp.exe
Путь сбойного модуля: C:\Windows\SYSTEM32\ntdll.dll
Идентификатор отчета: f9f74a0e-a87d-11e7-80cf-00155d6
Полное имя сбойного пакета:
Код приложения, связанного со сбойным пакетом: 

Событие 1000

Описание проблемы

Есть ряд виртуальных машин. Операционные системы Windows Server 2008 R2 и Windows Server 2012 R2. Установлен веб сервер IIS и на каждой виртуальной машине есть пулы, которые обращаются к переводчику и что-то у программистов переводят. С какого-то момента почти на всех виртуальных машинах стали падать пулы и появляться ошибки, описанные выше, каждые 3-5 минут журнал "система" был забит сообщением "пул приложений, обнаружил неустранимую ошибку связи со службой активации Windows. Идентификатор процесса "7560". Поле данных содержит номер ошибки".

Основные причины данных ошибок

Давайте попробуем составить чек лист, который сможет помочь вам все исправить:

  • Самое частое и распространенное, это проблема со сторонним приложением и современным net framework, скажу сразу это мой случай, есть сервер переводов 10-12 и IIS 7 и IIS 8,5. Софт давно не обновлялся и в результате периодически ловлю ошибки "Имя сбойного модуля: ntdll.dll", есть сложности взаимодействия с net framework 4,5 и выше.
  • Не правильно установленный или наоборот, не до конца удалены хвосты предыдущих версий net framework
  • Может не хватать прав на какие-то каталоги, выясняется в логах
  • Может ставить палки в колеса UAC Windows.
  • Сторонние программы использующие библиотеку ntdll.dll
  • Пулы приложений запущенных в IIS сервере крутятся от учетной записи не имеющей прав, или отключённой вообще.

Как заставить IIS работать

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

  • Если у вас есть сторонний софт, по типу 1С, КриптоПро CSP или как у меня сервер 10-12, то постарайтесь найти новые обновления под него, так как не у всех на работе есть инфраструктура WSUS и обкатки обновлений на тестовом стенде, поэтому вы всегда можете стать жертвой новых обновлений, мешающих корректной работе вашего IIS.
  • Советую вам включить debug (режим отладки) в IIS, чтобы найти более детальные проблемы вашего приложения.
  • Попробуйте удалить новые версии net framework, очень частая проблема, что прилетают свежие версии через центр обновления Windows и начинается катавасия. Сами Microsoft для своих продуктов, как шара поинт или Exchange, сами не рекомендуют ставить последние версии библиотек, и заставляя администраторов дождаться свежих версий обновлений самих программных продуктов.
  • Иногда я встречаю ошибку, что IIS сервер не может получить доступ к какому-то каталогу, в следствии чего могут быть ошибки WAS 5011 и "Имя сбойного модуля: ntdll.dll, версия: 6.3.9600.18696, метка времени: 0x5915ecd6". Логично, что дав права ошибка пропадает.
  • Я встречал случаи, когда пулы приложений работали от ограниченных учетных записей или вообще человек уволился, а служба или сервис пытается стартовать из под него, проверь это в настройках пулов.

Не работает pool в IIS

  • Удалите новые версии net framework 4,6 и выше, очень часто причиной проблем со старым софтом, кроется в них. Как правильно это сделать читайте тут.
  • Попробуйте отключить User Access Control (UAC)
  • Как я и писал сторонние программы используют библиотеку ntdll.dll, и она вполне может быть повреждена после одной из них, я вам советую произвести процедуру проверки ошибок и целостности в Windows. Для начала в свойствах диска C:\ на вкладке "Сервис" выполните сканирование файловой системы на ошибки.

исправляем WAS 5011

Сама процедура не займет много времени, тут же при их нахождении вы можете их исправить.

исправляем w3wp.exe 0xc0000374

  • Попробуйте произвести очистку системы от различного рода мусора, вам в этом помогут утилиты Ccleaner и Privazer.
  • Если вам не помогли данные методы и ошибка "Имя сбойного модуля: ntdll.dll, версия: 6.3.9600.18696, метка времени: 0x5915ecd6" продолжает вам ломать IIS сервер, то рассмотрите вариант переустановки операционной системы, на многих форумах Microsoft так и советуют.

Исправляем ошибку WAS 5011

данная ошибка, является производной от "Имя сбойного модуля: ntdll.dll, версия: 6.3.9600.18696, метка времени: 0x5915ecd6"

Как ее исправлять, точных методов я так и не увидел, но можно сделать, так, чтобы при ее возникновении IIS перезапускался и продолжал работать. Открываем диспетчер IIS. Переходим в пункт "Пулы приложений". Выбираем нужный и через контекстное меню перейдем в "Дополнительные параметры"

пулы приложений IIS

Находим пункт "Защита от частых сбоев", в строке "Включен" ставим False. Теперь сайт если в течении 5 минут 5 раз сбоит, просто перезапустится, а не будет лежать.

Защита от сбоев IIS

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *