【问题标题】:mvc asp.net web project first loadmvc asp.net web 项目第一次加载
【发布时间】:2016-06-12 22:25:32
【问题描述】:

我在共享主机上发布了由 C# MVC5 ASP.NET 和实体框架编写的我的 Web 项目。第一次加载,速度很慢,需要很长时间,几乎 12 秒,但之后就可以了。我在 gtmetrix.com 上测试了我的网站,幸运的是在 A 类中。谁能告诉我为什么第一次加载需要很长时间?我有一些建议。 1)它是因为实体框架? 2)因为我使用了很多库,它需要在加载之前加载这些 dll 文件? 3)我需要在 IIs 中进行一些配置(我无法访问 IIs Server,因为我使用的是共享主机)? (编译调试也是错误的) 如果有人帮助我,我将不胜感激。 网站地址是 www.kajalmarket.com 并且是最近上传的。

【问题讨论】:

  • 第一次 .net 站点在 IIS 中“命中”时,IIS 将编译该站点。因此,即使您发布的是预编译的网站,IIS 也不会在第一个人点击它之前对其进行编译。
  • 感谢您的评论。所以你认为这是自然的,我不应该担心,我什么也做不了。
  • 如果它只是影响第一个点击页面的人,我不会担心它。如果它在不同的客户和不同的时间很明显,那么我会调查。
  • 我发现的有趣的事情是当网站上至少有2个在线号码时速度还可以!但是当它减少到 1 个用户时,打开网站的一些用户需要很长时间才能加载。也许是网络服务器睡眠 !!!!。

标签: asp.net-mvc iis asp.net-mvc-5


【解决方案1】:

如果您担心,可以在部署之前进行预编译。

这里有更多信息: https://msdn.microsoft.com/en-us/library/ms227972(v=vs.90).aspx

预编译 ASP.NET 网站可为用户提供更快的初始响应时间,因为在第一次请求页面时不必编译它们。这对于经常更新的大型网站特别有用。

如果您通过 Visual Studio 发布,您还可以选择“发布期间预编译”: Click here to see screenshot.

另一个选项如下取自(https://msdn.microsoft.com/en-us/library/ms366723.aspx):

如果您希望能够在不重新编译整个站点的情况下更改顶级文件,可以将 Web.config 文件中编译元素的 optimizeCompilations 属性设置为 true。如果 optimizeCompilations 为真,当您更改顶级文件时,只会重新编译受影响的文件。这可以节省时间,但可能会导致运行时错误,具体取决于您对顶级文件所做的更改类型。

使用此方法,您应该会看到重新编译时间减少,因为它只重新编译那些已更改的顶级文件。

HTH

【讨论】:

  • 感谢 wazdev 的回答我做了预编译,但它就像以前一样。
  • 还有一个可以关闭的标志来防止完全重新编译。我已经相应地更新了我的答案。
猜你喜欢
  • 2018-07-10
  • 1970-01-01
  • 2012-07-16
  • 2019-09-18
  • 1970-01-01
  • 2018-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多