我有一个在Azure上运行的dotnet函数应用程序,它使用HttpClient来调用另一个API,但它在一段时间后超时(我相信是100秒,这应该是默认值)。我试过将timeout字段更新为30分钟或60分钟(例如:httpClient.Timeout = TimeSpan.FromMinutes(30);
)但这并没有改变任何东西。
对于dotnet API,这个超时值is set by the server, not the code,它对我的API很好用(我可以在dotnet API上下文中调用相同的代码,它很好用),但我需要把它添加到我的函数app上下文中。如果我错了请纠正我,但是函数应用程序没有Web.config文件,而只使用应用程序设置/连接字符串,我找不到为此的应用程序设置。有什么办法可以绕过这个吗?
- 注意:这不是由于实际的函数应用超时,我仍然可以在http客户端超时后在函数应用中运行代码。问题在于专门为Http客户端配置执行超时,仅在函数应用上下文内 *
1条答案
按热度按时间qyyhg6bp1#
在Microsoft文档中提到,HTTP触发器函数的最大超时时间为230秒,无论超时时间如何:
函数应用中函数的超时持续时间由host.json项目文件中的functionTimeout属性定义。无论<...>函数应用程序超时设置如何,230秒都是HTTP触发函数响应请求所需的最大时间。这是因为Azure负载均衡器的默认空闲超时。
从这个answer看,230秒的限制似乎不能延长。