Azure 应用程序服务停止工作一段时间

问题描述 投票:0回答:4

自 5 到 6 个月以来,我一直在 azure 门户上托管我的客户端(Web 应用程序)和服务(Web API)应用程序。

自从托管我的应用程序的同一天以来,我面临的问题是当我第一次调用我的 api 从客户端 Web 应用程序加载下拉列表时,它给了我一些时间超时错误,但有时需要比预期的时间更多要从 api 获取结果,客户端必须等待响应到来。

第一次成功尝试后,它的运行速度非常快,但第一次它有时会延迟获得结果,有时会抛出超时错误。

我曾经使用调度程序时不时地调用API,但这也没有帮助。

如果有人可以分享任何其他想法,我会很高兴,并提前致谢。

azure timeout azure-web-app-service
4个回答
12
投票

您可以尝试在网络应用程序的

应用程序设置
下打开Always On功能:

这可以确保当站点空闲时,进程不会被卸载(进入睡眠状态):

可能正是这种“睡眠”导致初始请求花费更长的时间,因为它必须再次“预热”。


0
投票

如果仅在第一个请求时发生这种情况,则可能与您的 Web 应用程序首次加载有关。换句话说:解决方案的 JIT 编译、加载 dll:使应用程序热起来并准备好处理请求的一切。

解决此问题的一种方法是将代码部署到 Web 应用程序上的插槽 (https://learn.microsoft.com/en-us/azure/app-service/web-sites-staged-publishing) ,让它热起来,并且只将部署插槽与生产插槽交换。假设您使用 VSTS 进行发布,则有现成的部署步骤用于部署到插槽和交换插槽。使用 Powershell 步骤或用于调用 REST API 的扩展可以轻松完成 API 调用。

另一种更复杂的方法可能是使用 IIS 标准功能来让应用程序预热:https://learn.microsoft.com/en-us/azure/app-service/web-sites-staged-publishing


0
投票

这可能不是解决方案,但作为 Azure Web 应用程序的最佳实践,我尝试通过应用程序洞察对其进行可用性测试。对我来说,错误或丢失请求的主要驱动因素始终是可用性失败。

为此,我通常还会在流量管理器、复制的 Web 应用程序和自动扩展服务计划下构建我的 Web 应用程序。


0
投票

就我而言,我用于运行资源组的免费积分已过期,并且附加到该组的所有服务都停止了。我刚刚将订阅升级为即用即付,一切都恢复了。

© www.soinside.com 2019 - 2024. All rights reserved.