gpt4 book ai didi

ASP.NET MVC4 页面在 Microsoft Azure 上加载速度极慢

转载 作者:行者123 更新时间:2023-12-03 00:50:22 24 4
gpt4 key购买 nike

在将 ASP.NET MVC4 应用程序部署到 Microsoft Azure 后,我目前正在处理非常烦人的性能问题。重新启动应用程序后(或几分钟不活动后),某些页面首次加载需要大约 15 秒。此后,即使清除客户端缓存,这些页面也将在大约 2 秒内加载(仍然需要改进,但比 15 秒要好得多,这是一个巨大的用户体验 killer )。

这是我到目前为止已经尝试过的:

  • 我梳理了 Global.asax 中的每个事件,以便用虚拟代码替换与数据库相关的代码
  • 将发布设置更改为:“发布期间预编译”(将所有输出合并到单个程序集)
  • 根据 Azure 的“应用性能分析”,我的应用被认为是“健康”
  • “永远在线”在门户的应用程序设置中激活(定价等级为 B1 [基本、1 核、1.75GB RAM],因此我假设永远在线开关不会被共享运行时覆盖配置)

由于上面的项目符号都没有解决我的问题,我尝试使用 Quartz.NET 编写一个 keppalive-Job,它定期请求如下网站:

new System.Net.WebClient().OpenRead("https://foo.azurewebsites.net");

(就我而言,我认为效果或多或少与在 Web.Config 中声明初始化页面相同,如前面提到的 here ,不是吗?)

结果:它有效,但仅适用于这个特定的 URL。维护所有可能路线的列表绝对不是正确的方法。

您处理过这个问题吗?我非常感谢您的意见!

最佳答案

自从我在 Azure 上托管的组织工作以来已经有一段时间了,但他们曾经有一个选项,您可以配置标记为“始终开启”的选项,这实际上相当于将空闲超时设置为零应用程序池并将您的应用程序加载到内存中。否则,如果没有流量,您的网站将被卸载并在第一次点击时强制进行 JIT(有点像初始部署后)。

我读到过其他人向他们的网站创建模拟 http 请求,以保持流量持续增长,并避免在订阅不提供“始终在线”选项的较低价格层时从内存中卸载。

编辑:这是另一篇解决此问题的帖子:App pool timeout for azure web sites

关于ASP.NET MVC4 页面在 Microsoft Azure 上加载速度极慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47910784/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com