作为Azure Web App托管的ASP.NET Web API应用程序出现性能问题。将第一个请求部署到Web服务之后,确实很慢(我们在这里谈论的是秒)。后续请求可以正常工作而不会造成额外延迟。
“始终开启”功能可以很好地阻止应用卸载,但这不能解决我的问题。我不希望第一个请求热身(BTW-应该热身吗?)。
我在Azure中使用了诊断和性能分析工具,但没有找到引起此问题的根本原因。我也使用了Application Insights。似乎我的一个功能在第一个请求期间需要更多的时间来执行-在本地调试应用程序,我没有注意到上述功能的任何性能问题。
我该如何解决?
谢谢!
答案 0 :(得分:0)
这也让我感到痛苦。 “始终在线”仅会自动调用您的服务根目录-考虑每次都对过程进行拍打,以使其不会进入睡眠状态。.我们不在PROD服务中使用此过程,而是通过Azure可用性测试来调用每5分钟Ping()端点-两只小鸟,一只石头。此外,如果根目录中没有任何内容,AlwaysOn将在App Insights中生成404错误。 完全不同的是对每个端点进行预热,以便它们可以进行JIT编辑并准备就绪,我发现没有什么比预热脚本更好的了,因为该脚本带有要调用的整个端点列表,这不是完美的,但是它作品。因此,每次进行部署或重新启动时,此操作都会自动运行,并且您的首次通话不会受到伤害。 看看https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-protocols-oauth-code。 希望对您有帮助