Azure应用服务出站请求超时

时间:2019-02-18 05:38:53

标签: c# azure timeout azure-web-app-service

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

我有一个后台任务,该任务调用一个外部API,该API返回一个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 PM System.Net.WebException:操作已超时

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

1 个答案:

答案 0 :(得分:1)

根据文档Why does my request time out after 230 seconds?

,Azure Load Balancer的默认空闲超时设置为少于4分钟(230秒)。

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