Виснет pool в IIS, код события 1000 и WAS 5011
Добрый день уважаемые подписчики и гости сайта 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.
Приложение: 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()
Версия платформы: v4.0.30319
Описание. Процесс был завершен из-за внутренней ошибки среды выполнения .NET по IP-адресу 746F74E0 (746E0000) с кодом выхода 80131506.
Имя сбойного модуля: 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
Полное имя сбойного пакета:
Код приложения, связанного со сбойным пакетом:
Описание проблемы
Есть ряд виртуальных машин. Операционные системы 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". Логично, что дав права ошибка пропадает.
- Я встречал случаи, когда пулы приложений работали от ограниченных учетных записей или вообще человек уволился, а служба или сервис пытается стартовать из под него, проверь это в настройках пулов.
- Удалите новые версии net framework 4,6 и выше, очень часто причиной проблем со старым софтом, кроется в них. Как правильно это сделать читайте тут.
- Попробуйте отключить User Access Control (UAC)
- Как я и писал сторонние программы используют библиотеку ntdll.dll, и она вполне может быть повреждена после одной из них, я вам советую произвести процедуру проверки ошибок и целостности в Windows. Для начала в свойствах диска C:\ на вкладке "Сервис" выполните сканирование файловой системы на ошибки.
Сама процедура не займет много времени, тут же при их нахождении вы можете их исправить.
- Попробуйте произвести очистку системы от различного рода мусора, вам в этом помогут утилиты Ccleaner и Privazer.
- Если вам не помогли данные методы и ошибка "Имя сбойного модуля: ntdll.dll, версия: 6.3.9600.18696, метка времени: 0x5915ecd6" продолжает вам ломать IIS сервер, то рассмотрите вариант переустановки операционной системы, на многих форумах Microsoft так и советуют.
Исправляем ошибку WAS 5011
Как ее исправлять, точных методов я так и не увидел, но можно сделать, так, чтобы при ее возникновении IIS перезапускался и продолжал работать. Открываем диспетчер IIS. Переходим в пункт "Пулы приложений". Выбираем нужный и через контекстное меню перейдем в "Дополнительные параметры"
Находим пункт "Защита от частых сбоев", в строке "Включен" ставим False. Теперь сайт если в течении 5 минут 5 раз сбоит, просто перезапустится, а не будет лежать.
Пожалуйста помогите! Эта статья отличная, но не помогает….
Зависает пул, причем у меня на одном пуле 3 сайта(базы 1С) и 2 базы могут открываться, а одна никак. И причем постоянно разные. Ошибка раз в 1-2 дня стабильно… Все уже обыскал….
Имя журнала: Application
Источник: Application Error
Дата: 11/30/2020 2:53:23
Код события: 1000
Категория задачи:(100)
Уровень: Ошибка
Ключевые слова:Классический
Пользователь: Н/Д
Компьютер: GurmanServer.gurmanserver.1c
Описание:
Имя сбойного приложения: w3wp.exe, версия: 10.0.14393.0, метка времени: 0x57899135
Имя сбойного модуля: ucrtbase.dll, версия: 10.0.14393.3659, метка времени: 0x5e914092
Код исключения: 0xc0000409
Смещение ошибки: 0x00088b2b
Идентификатор сбойного процесса: 0x59c
Время запуска сбойного приложения: 0x01d6c4be0ee808f7
Путь сбойного приложения: C:\Windows\SysWOW64\inetsrv\w3wp.exe
Путь сбойного модуля: C:\Windows\System32\ucrtbase.dll
Идентификатор отчета: 5caa0b5f-3de1-452a-bbe7-e73adb08aa66
Полное имя сбойного пакета:
Код приложения, связанного со сбойным пакетом:
Xml события:
1000
2
100
0x80000000000000
8084
Application
GurmanServer.gurmanserver.1c
w3wp.exe
10.0.14393.0
57899135
ucrtbase.dll
10.0.14393.3659
5e914092
c0000409
00088b2b
59c
01d6c4be0ee808f7
C:\Windows\SysWOW64\inetsrv\w3wp.exe
C:\Windows\System32\ucrtbase.dll
5caa0b5f-3de1-452a-bbe7-e73adb08aa66