ASP.NET网站首次启动非常缓慢

13

我第一次在生产 Web 服务器上加载网站时,它非常缓慢,后续页面加载非常快速(包括首页)。

我预编译了网站,但没有任何改变。

我没有在应用程序启动时编写任何代码。我也没有缓存项目。

有什么想法吗?如何找出发生了什么事情?

11个回答

12

这只是您的应用程序域加载并将任何二进制文件加载到内存中。此外,它正在初始化静态变量,因此如果您有一个静态变量从数据库中加载大量数据,可能需要一点时间。


1
当一个网站启动速度如此缓慢时,这肯定是一个设计缺陷吧? - Ian Warburton

2

当您发布网站时,是否在发布网站的设置中选择使网站“可更新”?如果我记得正确,aspx / ascx文件也需要编译,如果它们是“可更新”的,则第一次启动将导致对这些资源进行重新编译。


1

1
确保你将应用程序发布在“release”而不是“debug”中。我注意到这会大大减少加载时间。web.config文件将被更新。

1

尝试清除您的事件日志?


1

你在 web.config 中开启了 tracing 吗?


0

这听起来非常像后台编译;但如果你正在预编译,那就不应该是问题。

我首先会看一下你的ORM(如果有的话)。特别是NHibernate,在启动时运行多个编译器以将数据层中的每个类转换为其自己的内存程序集,因此具有严重的启动惩罚。


0

稍微向达伦点个头,这是在更新DLL后.NET应用程序的典型行为。初始加载后,一切都应该很顺畅。


0

当您说“编译”该网站时,您是使用aspnet_compiler实用程序进行预编译,还是仅在Visual Studio中使用“构建网站”选项?

如果您没有执行前者,我建议尝试一下。结合Web Deployment Projects,您应该更容易地部署每个版本的站点。


0

初始速度慢有几个原因:

  • 应用程序域正在设置
  • ASP.NET正在解析和编译ASPX页面。
  • 全局上下文正在初始化。

这是ASP.NET的正常行为。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接