Ошибка тайм-аута веб-приложения Azure с ответом 500/502

Фон:

Действия по воспроизведению проблемы

Что я пробовал до сих пор

  • Включил журналы диагностики - я этого не сделал. не нашел ничего интересного.
  • Я уже пробовал это и несколько других ответов SO - не повезло
  • Не помогает и перезапуск веб-приложения. Однако приложение начинает работать, как только я изменяю какие-либо настройки приложения приложения Azure - даже изменение значения WEBSITE_HTTPLOGGING_RETENTION_DAYS с 2 до 5 запускает приложение.

Посоветуйте, пожалуйста, как устранить эту ошибку?


person shobhit vaish    schedule 20.03.2019    source источник
comment
Есть ли у приложения разрешение на хранилище ключей? и в качестве хорошего тона было бы неплохо опубликовать код   -  person Vova Bilyachat    schedule 20.03.2019
comment
Да, у приложения есть разрешение на хранилище ключей. Как я уже говорил, в локальном все работает нормально.   -  person shobhit vaish    schedule 20.03.2019
comment
Чем ты закончил? Получаю это уже несколько дней. это просто начинает происходить в лазурном свете.   -  person Steve Coleman    schedule 13.12.2019


Ответы (1)


Ответ на ошибку 502 неверный шлюз не похож на традиционную ошибку 500, которая в основном является проблемой кода, это даже затрудняет устранение основной причины.

По сути, код ответа сервера HTTP 502 Bad Gateway с ошибкой указывает, что веб-сервер (IIS в нашем сценарии), выступая в качестве шлюза или прокси, получил недопустимый ответ от вышестоящего сервера. Это может произойти по нескольким причинам - например, из-за невозможности подключения к вышестоящему серверу, отсутствия ответа от восходящего сервера или из-за слишком долгого ожидания ответа от восходящего сервера (тайм-аут). В результате сервер, который действует как шлюз или прокси, сообщит об этом как о состоянии 502. Причина, по которой 502 трудно устранить, заключается в том, что основная причина может сильно различаться и будет зависеть от реальной инфраструктуры приложения, например как Asp.Net, PHP, Java и т. д.

Как мы знаем, для приложения ASP.NET Core для размещения приложения в IIS нам необходимо установить AspNetCoreModule. На самом деле это собственный модуль в IIS, действующий как обратный прокси для приложения ядра dotnet, поэтому мы можем столкнуться с ошибкой 502 для приложения ASP.NET Core.

Хотя ошибка 502 также может быть вызвана проблемой базовой платформы, такой как проблема с диском / хранилищем, в большинстве случаев нам нужно сосредоточиться на компонентах, работающих на вышестоящем сервере (основная причина), и журнал IIS предоставит нам информацию о том, как сузить вниз по вопросу.

Теперь предположим, что при доступе к приложению ASP.Net Core возникает ошибка 502, код вспомогательного состояния может оказаться недостаточно полезным. Во-первых, мы можем проверить журнал IIS и проверить основную причину с помощью кода sc-win32-status. В качестве альтернативы мы можем включить отслеживание неудачных запросов, чтобы узнать более подробную информацию.

введите здесь описание изображения

Вышеупомянутый журнал дает нам две информации об импорте, ошибка исходит от AspNetCoreModule, а код ошибки - 2147954402. Это означает, что ошибка 502 вызвана AspNetCoreModule, и, вероятно, он получил недопустимый ответ. Кроме того, мы можем использовать либо утилиту err, либо посетить http://errors/, чтобы выяснить, что 2147954402 - это просто WININET_E_TIMEOUT. По умолчанию время ожидания запроса ASP.NET Core составляет 2 минуты, и мы можем изменить его с помощью requestTimeout в файле настроек. Дополнительные сведения о конфигурации ASP.NET Core см. В справочнике по настройке модуля ASP.NET Core.

Также я прошу вас ознакомиться с руководством по устранению неполадок приложения asp.net core 2.2.

https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/azure-apps/troubleshoot?view=aspnetcore-2.2

Надеюсь, это поможет.

person Mohit Verma    schedule 10.05.2019