Тайм-аут исходящего запроса службы приложений Azure - PullRequest
0 голосов
/ 18 февраля 2019

Мой сайт .NET размещен в службе приложений Azure.

У меня есть фоновая задача, которая вызывает внешний API, который возвращает json (~ 5 МБ), и обычно это занимает 3-4 минуты, когда я тестирую его в своем браузере.

Но этосбой вызова при выполнении с сервера Azure.

var request = (HttpWebRequest)WebRequest.Create(apiUrl);
request.Timeout = request.ReadWriteTimeout = 15 * 60 * 1000; // 15 mins
request.Accept = "application/json";

var response = request.GetResponse();
using (var reader = new StreamReader(response.GetResponseStream()))
{
    var result = reader.ReadToEnd();
    ...
}

Я пытался вызывать другие конечные точки API, которые работают быстрее в том же домене и работают нормально, поэтому дело не в блокировке серверов Azure иливсе, что угодно.

У меня такое ощущение, что в какой-то момент Azure разрывает соединение.

Мои журналы показывают следующее:

18/02/2019 12:00:00PM Загрузка данных пакетов из https://xxxx/api/grouptours/

18/02/2019 12:15:00 System.Net.WebException: истекло время ожидания операции

РЕДАКТИРОВАТЬ : хотя сайт работает в нескольких экземплярах, у нас нет ни Load Balancer, ни Traffic Manager.

1 Ответ

0 голосов
/ 18 февраля 2019

В Azure Load Balancer по умолчанию установлено время ожидания простоя чуть меньше четырех минут (230 секунд) в соответствии с документацией: Почему время моего запроса истекает через 230 секунд?

ДляФоновое задание, которое вы можете посмотреть на webjob или azure.

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