У нас есть основное приложение .net, размещенное в службе приложений Azure. Он работает на 64-битной платформе, «Всегда включено» и функция локального кэша также включена.
В дополнение к производственному слоту у нас есть слот QA. Конфигурация слота QA идентична производственному слоту. В настоящее время наш процесс развертывания включает в себя ручную публикацию в слоте QA, затем вручную выполните пару «здравых» тестов и затем вызовите первый шаг опции «Обмен с предварительным просмотром» (исходный контроль качества, назначение производства) с портала. Затем мы наконец вызываем опцию «Полный обмен».
Часто, но не всегда (возможно, каждый второй раз), рабочий слот перезапускается сразу после того, как мы вызываем первый шаг опции «Обмен с предварительным просмотром». Слот QA никогда не перезапускается. Мы знаем это по результатам запуска соответствующих процессов в Process Explorer на консоли Kudu.
Исходя из моего понимания, первый шаг "Swap with Preview" никогда не должен влиять на рабочий слот. Во всяком случае, это должно касаться только слота QA, поэтому наши наблюдения кажутся не такими, как мы ожидали. Перезапуск рабочего слота вызывает около 15 секунд бездействия в нашем живом приложении (хотя, по крайней мере, никаких ошибок 'Service Unavailable' не возвращается).
Это непредсказуемое поведение делает нас нерешительными для развертывания в «загруженное» время, потому что мы «боимся», что рабочий слот перезапустится и приведет к задержкам для наших пользователей.
Мы попытались использовать новый замечательный инструмент «Диагностика и решение проблем», чтобы выяснить, почему перезапускается производственный слот, но этот инструмент даже не сообщает о перезапуске (хотя ясно, что приложение перезапустилось с Process Explorer в Куду).
Я пытался воспроизвести это поведение в изолированной учетной записи с помощью простого веб-приложения, но безрезультатно.
Мой вопрос : кто-нибудь может пролить свет на то, почему рабочий слот может перезапускаться и / или как можно приступить к диагностике этой проблемы?