【发布时间】:2019-07-11 11:14:41
【问题描述】:
我的 .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:操作已超时
编辑:虽然网站在多个实例上运行,但我们没有负载均衡器或流量管理器设置。
【问题讨论】:
-
您是如何解决这个问题的?我还在下载一个需要 5 分钟的 json。我加载了一个小时然后超时。还有一个网络作业。在我的本地机器上它可以工作。有什么想法吗?
-
@NinjaOnSafari 对我来说,webJob 下载工作正常,即使运行时间超过 5 分钟。
标签: c# azure timeout azure-web-app-service