我第一次在生产 Web 服务器上加载网站时,它非常缓慢,后续页面加载非常快速(包括首页)。
我预编译了网站,但没有任何改变。
我没有在应用程序启动时编写任何代码。我也没有缓存项目。
有什么想法吗?如何找出发生了什么事情?
我第一次在生产 Web 服务器上加载网站时,它非常缓慢,后续页面加载非常快速(包括首页)。
我预编译了网站,但没有任何改变。
我没有在应用程序启动时编写任何代码。我也没有缓存项目。
有什么想法吗?如何找出发生了什么事情?
这只是您的应用程序域加载并将任何二进制文件加载到内存中。此外,它正在初始化静态变量,因此如果您有一个静态变量从数据库中加载大量数据,可能需要一点时间。
当您发布网站时,是否在发布网站的设置中选择使网站“可更新”?如果我记得正确,aspx / ascx文件也需要编译,如果它们是“可更新”的,则第一次启动将导致对这些资源进行重新编译。
使用http://www.iis.net/expand/ApplicationWarmUp来预热您的应用程序,这适用于IIS 7.5 - 因此,如果您正在运行Server R2,则它将起作用。
尝试清除您的事件日志?
这听起来非常像后台编译;但如果你正在预编译,那就不应该是问题。
我首先会看一下你的ORM(如果有的话)。特别是NHibernate,在启动时运行多个编译器以将数据层中的每个类转换为其自己的内存程序集,因此具有严重的启动惩罚。
稍微向达伦点个头,这是在更新DLL后.NET应用程序的典型行为。初始加载后,一切都应该很顺畅。
当您说“编译”该网站时,您是使用aspnet_compiler实用程序进行预编译,还是仅在Visual Studio中使用“构建网站”选项?
如果您没有执行前者,我建议尝试一下。结合Web Deployment Projects,您应该更容易地部署每个版本的站点。
初始速度慢有几个原因:
这是ASP.NET的正常行为。