第一次将网站加载到生产Web服务器中时,它的启动速度非常慢,随后的页面加载速度非常快(包括主页)。

我对该站点进行了预编译,但是没有任何变化。

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

有任何想法吗? 我怎么知道发生了什么事?

===============>>#1 票数:12 已采纳

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

===============>>#2 票数:2

发布网站时,您是否选择在发布网站的设置中使网站“可更新”? 如果我没记错的话,也需要编译aspx / ascx文件,并且如果它们是“可更新的”,那么第一次启动将导致这些资源的重新编译。

===============>>#3 票数:1

尝试清除您的事件日志?

===============>>#4 票数:1

使用http://www.iis.net/expand/ApplicationWarmUp来预热您的应用程序,这是针对IIS 7.5的-因此,如果您在Server R2上运行,它将可以使用。

===============>>#5 票数:1

确保在“发行版”而不是“调试”中发布应用程序。 我注意到这大大减少了加载时间。 web.config文件将被更新。

===============>>#6 票数:1

您是否已打开web.config中的跟踪功能

===============>>#7 票数:0

这听起来很像是后台编译。 但是,如果您要进行预编译,那应该不是问题。

我首先要看的是您的ORM(如果有)。 尤其是NHibernate,在启动时会在后台运行多个编译器,从而将数据层中的每个类都转换为自己的内存中程序集,因此,启动时会遭受严重损失。

===============>>#8 票数:0

在达伦(Darren)快速点头。 这是DLL更新后.NET应用程序的典型行为。 初始加载后,所有内容都应该顺畅地滑行。

===============>>#9 票数:0

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

如果您不执行前者,建议您旋转一下 Web部署项目结合使用,您应该可以更轻松地为每个版本部署站点。

===============>>#10 票数:0

最初的缓慢有两点:

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

这是ASP.NET的正常行为。

===============>>#11 票数:0

@米奇:不,它已关闭。 我需要打开它来查找吗?

跟踪日志将向您显示每个操作需要多长时间。 它可以帮助您找到所需的时间。

是一个可以帮助您进行设置的链接。

  ask by Eduardo Molteni translate from so

未解决问题?本站智能推荐: