Рейтинг:1

Как я могу узнать, что вызвало перезапуск пула приложений внутри только что запущенного контейнера докеров?

флаг by

В AWS Task помещается в экземпляр EC2, а приложение ASP.NET WebAPI 2 запускается в контейнере Docker.

Корневой сайт пуст, а подкаталог «/myapp» содержит работающее веб-приложение.

Пул приложений настроен на автоматический запуск и всегда остается включенным. Параметр preloadEnabled активен, чтобы обеспечить правильное повторение с перекрытием и завершение Application_Start перед обслуживанием запросов. Я даже назначил страницу прогрева, которая устанавливает флаг, и подтвердила, что она также вызывается до того, как новый процесс получит запросы.

Моя проблема заключается в том, что при первом размещении задачи, еще до того, как был вызван Application_Start, я вижу системные журналы Windows, указывающие на то, что IIS считает, что произошло изменение конфигурации, требующее перезапуска пула приложений. В результате второй процесс w3wp.exe начинает выполнять логику Application_Start всего через несколько секунд после запуска первого, даже не успев завершить свой запуск Application_Start. В конце концов, происходит сбой обоих процессов, и они заменяются третьим процессом, который успешно завершается и начинает обслуживать запросы.

Итак, мой первый вопрос: почему новый док-контейнер, который собирается запустить IIS, сразу же думает, что произошло какое-то изменение настроек, требующее исходный процесс переработки? К моменту записи этого системного журнала пользовательский код даже не запустился; его временная метка появляется за несколько секунд до того, как Application_Start даже регистрирует любую активность. Мой второй вопрос, как я могу выяснить, что вызывает это очевидное изменение настроек или что это за изменение настроек?? В журнале не упоминается, какие настройки или файл изменились и почему. Это кажется особенно сложным для отладки в контейнере докеров.

Насколько мне известно, существует антивирусный сканер не трогает файлы в докер-контейнере (как изначально было предложено здесь), и, насколько я знаю, файловая система образа докера уже заблокирована при запуске; это не похоже на то, что строки в файле докера, которые изменяют настройки, повторно запускаются при монтировании образа.

Системные журналы:

25.01.2022 22:36:59 Предупреждение WAS Процесс, обслуживающий пул приложений DefaultAppPool, неожиданно завершился. Идентификатор процесса был «11592». Код завершения процесса был «0xc0000005».

25.01.2022 22:36:59 Предупреждение WAS В процессе, обслуживающем пул приложений DefaultAppPool, произошла фатальная ошибка связи со службой активации процессов Windows. Идентификатор процесса был «1328». Поле данных содержит номер ошибки. 109 0 7 128

25.01.2022 22:34:35 Информация WAS Рабочие процессы, обслуживающие пул приложений DefaultAppPool, перезапускаются из-за одного или нескольких изменений конфигурации в свойствах пула приложений, которые требуют перезапуска процессов.

Обратите внимание, что первый журнал в 22:34:35, указывающий на то, что что-то изменилось, происходит ДО того, как первый процесс достигнет Application_Start, потому что первый вывод журнала Application_Start имеет отметку времени намного позже. Переключение различных параметров пула приложений, таких как время ожидания запуска и т. д., изменяет причину сбоя двух процессов (например, иногда это OutOfMemoryException вместо нарушения доступа), но ничто из этого не объясняет, почему он считает, что перезапуск пула необходим перед первым один даже запускается, а потом запускается два процесса, один почти сразу за другим.Меня меньше беспокоит, почему они оба в конечном итоге падают, а затем заменяются идентичным третьим процессом, который завершается без каких-либо проблем.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.