Служба приложений, размещенная в Azure, иногда возвращает ошибку 502 - PullRequest
0 голосов
/ 03 февраля 2020

Для некоторых запросов веб-API, возможно, тех, которые долго выполняются, в службе приложений, размещенной в Azure, я получаю страницу с ошибкой 502 ответа. Иногда вызов API завершается неудачно, иногда - успешно.

502 - веб-сервер получил недопустимый ответ, выступая в качестве шлюза или прокси-сервера

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

Я попытался войти в файлы журналов (LogFiles/eventlog.xml) , но не удалось отследить ошибку.

Я полагаю, она связана с некоторым тайм-аутом, но не знаю, где ее можно установить в настройках службы приложений.

Ответы [ 2 ]

1 голос
/ 03 февраля 2020

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

https://docs.microsoft.com/en-us/azure/architecture/patterns/retry

0 голосов
/ 04 февраля 2020

В Azure IIS является обратным прокси для сервера Kestrel.

Я решил проблему, добавив .UseKestrel(...) к функции BuildWebHost в файле Program.cs следующим образом :

public static IWebHost BuildWebHost(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .UseStartup<Startup>()
        .UseKestrel(o => { o.Limits.KeepAliveTimeout = TimeSpan.FromMinutes(10); })
        .Build();
}

Более общий c вопрос о тайм-аутах долго выполняющихся задач - ответ здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...