Мой сайт .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.