Относительно простая служба приложений Azure (в настоящее время .net 4.6.2 вместо Azure SQL) работает уже более 18 месяцев. Это как скала. Я редко думаю об этом сайте и уже несколько месяцев не выпускал обновления.
Сегодня утром я просыпаюсь и обнаруживаю электронные письма от клиентов, в которых говорится, что веб-сайт сообщает: «Указанное приложение CGI обнаружило ошибку, и сервер прервал процесс». Как первое предположение, я нажал «Перезагрузить» на портале Azure напротив службы приложений. Примерно через минуту он вернулся к жизни и с тех пор работает нормально.
Я перешел в «Диагностика и решение проблем» -> «Доступность и производительность». Хронология «Запросы и ошибки» показывала момент, когда веб-сайт отключился и когда он ожил. Я углубился в временную шкалу и выбрал «Полный отчет».
Фактически он сообщил следующее
Обнаружены события остановки приложения. Мы проанализировали 3 события платформы, 1 пользовательское событие.
Платформа (обновление файлового сервера) Ваше приложение было переработано из-за обновления файлового сервера. Это событие произошло несколько раз в течение дня в нескольких экземплярах. Эти события вызывают перемещение тома хранилища, что может привести к перезапуску вашего приложения. Если это событие перезапуска отрицательно влияет на доступность приложения, включение функции локального кэша может в некоторой степени снизить зависимость от файловых серверов хранилища. Подробнее: проверьте локальный кеш, как описано в разделе «Устранение неполадок и следующие шаги».
Платформа (обновление инфраструктуры) Примерно 20.11.2019 14:09:57 (UTC), на экземпляре xxxxxxxx, ваше приложение было переработано, так как масштабируемая единица Azure подвергалась обновлению. Microsoft периодически обновляет базовую платформу Azure, чтобы повысить общую надежность, производительность и безопасность инфраструктуры платформы, на которой выполняется ваше приложение. Большинство этих обновлений выполняется без какого-либо влияния на ваше веб-приложение. Чтобы уменьшить влияние таких событий на ваше приложение, рассмотрите возможность развертывания приложения в нескольких регионах и используйте диспетчер трафика Azure для распределения нагрузки по регионам.
Пользователь (Остановить сайт) Примерно 20 ноября 2019 г., 21:00:00 (по всемирному координированному времени) процесс вашего приложения был перезапущен из-за действия пользователя, такого как остановка сайта на лазурном портале.
Я совершенно не понимаю, что делать и как предотвратить повторение этого снова.
Я подозреваю, что предложение "локального кеша" - отвлекающий маневр. Я использую файловую систему для создания нескольких временных файлов, которые впоследствии удаляет код.
Поиск в Google дал мало результатов.
Думаю, мне нужны предложения относительно того, что я могу сделать, чтобы этого больше никогда не повторилось.
Любые идеи?
Заранее спасибо.
Недавно мы столкнулись с похожей, но немного другой проблемой. После обновления на некоторых экземплярах приложение будет работать медленно или не отвечать.
В конце концов, после многих часов устранения неполадок с MS мы сузили это до некоторых случаев, которые были несовместимыми, что вызывало проблемы с анализом приложений (Java springboot).
getCanonicalName работал по-разному с этими экземплярами и вместо возврата IP-адреса возвращал что-то другое. Нам пришлось изменить настройки каталины, чтобы смягчить это. Похоже, исправление содержится в последнем SDK аналитики приложений.
В моем случае настройка WEBSITE_LOCAL_CACHE_OPTION к Всегда не сработало.
Вместо этого установка WEBSITE_ADD_SITENAME_BINDINGS_IN_APPHOST_CONFIG к 1 вот что наконец помогло.