Azure 应用服务出站请求超时

Azure App Service outbound request timeout

我的 .NET 站点托管在 Azure 应用服务上。

我有一个调用外部 API 的后台任务,其中 returns 一个 json (~5MB),当我测试它时通常需要 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:00 PM 从 https://xxxx/api/grouptours/

下载包数据

18/02/2019 12:15:00下午System.Net.WebException:操作超时

编辑:尽管该站点在多个实例上 运行,但我们没有负载平衡器或流量管理器设置。

根据文档,Azure 负载均衡器的默认空闲超时设置略少于四分钟(230 秒):Why does my request time out after 230 seconds?

对于后台任务,您可以查看 webjob 或 azure 函数。