【问题标题】:ASP.NET MVC 5 Very slow load timeASP.NET MVC 5 加载时间非常慢
【发布时间】:2019-06-15 03:46:17
【问题描述】:

所以我正在运行托管在 Azure 上的 ASP.NET MVC 5。我和许多其他人一样为第一次请求放慢速度而受苦。在我的本地 IIS 上,它甚至需要 10 分钟。在 VS 使用的本地 IIS Express 上,大约需要 1 分钟。在 Azure 上发布并查看第一页大约需要 2 分钟,从那时起其他页面大约需要 30 秒。当然,一旦页面第一次加载,其他请求就可以了。

因此,这些是我尝试更改的内容,以查看我是否设法修复本地 IIS 上的问题,因为我正在尝试在该 IIS 上进行测试。

  1. 编译调试设置为 false
  2. 预编译不起作用
  3. 在一个程序集中预编译和合并也不起作用
  4. 尝试添加一个空视图和一个返回视图的控制器,但速度仍然很慢
  5. 我还针对相同的 DAL 和业务层运行 API,并且加载速度并不慢(第一次加载大约需要 15 秒)。这意味着这不是作为实体框架的 DB 模型的问题,因为它使用相同的代码。

知道如何调试并了解为什么第一次加载如此缓慢。其他请求就可以了。

运行 IIS 版本 10。

谢谢

【问题讨论】:

  • 看起来您在启动时执行了一些操作。在这种情况下,您的控制器/视图是否为空/虚拟并不重要。
  • 我不这么认为 :(,因为每次我第一次打开任何页面时都会发生这种情况。也许我不够清楚。
  • @MarkFarrugia 你能检查一下这种延迟是否发生在 IIS 回收之后吗?如果是这样,您可以尝试这种方法:serverfault.com/questions/590865/…
  • 嗨@TiagoBrenck 不幸的是我尝试回收等并安装了应用程序初始化模块。即使是应用程序也不应该花 10 分钟来启动应用程序......当它被回收时。
  • @Artak 的评论值得您进行更多调查。您第一次查看“哪个页面”并不重要,因为在您的应用程序第一次启动时执行的某些内容会运行,而与(正在请求的任何页面)无关。

标签: asp.net asp.net-mvc azure azure-web-app-service iis-10


【解决方案1】:

考虑尝试应用程序初始化来预热您想要的页面。有关详细信息,请参阅 Application InitializationHow to warm up Azure Web App during deployment slots swap

如果应用程序初始化仍然无法正常工作,您可以尝试启用失败请求跟踪。 FREB 日志包含请求的整个生命周期以及执行时间。有助于调查哪个部分需要很长时间。样品图片:

请参阅here 以了解如何使用 FREB 日志进行故障排除。

如果还是不行,恐怕你需要向微软支持团队寻求帮助。

【讨论】:

  • 非常感谢。我和微软谈过。他们提供了使用部署槽的解决方案,这不是 100% 正确的,因为您必须消耗服务器资源来托管第二个应用程序。我正在做一些非常相似的事情,但在单独的服务器上,然后使用流量管理器管理重定向。我很确定 Azure IIS 上安装了应用程序初始化。
猜你喜欢
  • 2015-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-11
  • 2018-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多