Предыстория проблемы У нас есть PWA на основе реагирования (версия 16.14.0), размещенное в планах обслуживания приложений Microsoft Azure (уровень «Премиум»).
Недавно мы стали свидетелями увеличения количества спорадических проблем, когда мы видим 500 ошибок при обращении к некоторым конечным точкам серверной части. Первоначально я думал, что это проблема с серверной частью, однако я не понимаю, как это происходит, и мне нужны новые теории, чтобы их опробовать :|
Случайным образом при подключении к приложению мы замечаем сетевые ошибки: на одном (или более) из трех возможных серверов, с которыми взаимодействует пользовательский интерфейс, будет отображаться ошибка 500. В этом «состоянии» ВСЕ ошибки POST не дойдут до этого конкретного бэкэнда.
Это влияет ТОЛЬКО на конечные точки POST. Конечные точки GET успешно продолжают работать с этими серверами (что исключает проблемы с DNS). ВСЕ конечные точки POST возвращают 500 (было одно исключение POST-запроса, но мы пришли к выводу, что это произошло из-за отсутствия полезной нагрузки!). Запросы OPTIONS (предварительные проверки) для этих запросов POST успешно возвращают 204, но фактический запрос получает 500.
В наших тестовых средах мы размещаемся только на одном экземпляре серверной части плана службы приложений (который не менялся во время неудачных тестов), поэтому это не проблема балансировки нагрузки из-за сомнительного узла в пуле.
Инструменты мониторинга службы приложений Azure ограничены... но я не вижу никакой активности, позволяющей предположить, что эти вызовы действительно когда-либо доходят до серверной части. В аналитике приложений ничего нет, в журналах неудачных запросов ничего нет.
Это влияет на все наши серверные части. Серверная часть пользовательского интерфейса и C# .NET Framework 4.8.1 размещена в одном плане службы приложений, и здесь мы наблюдаем такие сбои время от времени. Пользовательский интерфейс также не работает с двумя другими службами приложений, размещенными в .NET 8 (которые работают в том же плане службы приложений).
Получена ошибка браузера: Не удалось загрузить ресурс: net::ERR_FAILED.
У меня два вопроса... Во-первых, почему это влияет только на POST? Я надеюсь, что понимание этого поможет определить основную причину проблемы. Во-вторых, как вы думаете, это могло быть из-за фронтенда, вызванного 500? Я видел доказательства того, что некоторые вещи в реакции (например, реагирующий маршрутизатор) могут возвращать 500. Я всегда думал, что ответ 500 ДОЛЖЕН прийти от серверной части. Но на данный момент я в этом не уверен, поэтому прошу некоторых разъяснений.
Я бы отправил заявку в службу поддержки Microsoft, но после того, как в прошлом я отправлял много заявок по гораздо более простым проблемам (например, когда их услуги выходят из строя), я понял, что это полный фарс и пустая трата времени, которую мне следует использовать, чтобы определить проблему.
Заранее большое спасибо за любые вопросы, предложения и ответы.
Что мы попробовали:
То, что нам еще предстоит попробовать, но есть в списке:
Что может «исправить» ошибку? Перезапуск браузера Подождите X минут, что, по-видимому, составляет от 5 до 15 минут (я все еще пытаюсь определить, как долго длится X). Используйте другой сеанс браузера (например, откройте Chrome в режиме инкогнито).





Это была проблема с Azure.
Текущий обходной путь — изменить службу приложений на использование http 1.1.
Группа продуктов Службы приложений в настоящее время изучает проблему.
Следующее сообщение, похоже, обновляется ими (в большей степени, чем мой запрос в службу поддержки, который все еще привязан к нашему CSP, CDW).
Реплика (извиняюсь, не видел) этой проблемы stackoverflow.com/questions/78568722/… Похоже на сетевую проблему Microsoft