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 函数。
我的 .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 函数。