Asp.net网站首发很慢

时间:2008-08-25 15:32:47

标签: asp.net

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

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

我在Application start上没有任何代码。 我没有缓存的项目。

有什么想法吗?我怎样才能知道发生了什么?

11 个答案:

答案 0 :(得分:12)

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

您是否在web.config中打开了tracing

答案 3 :(得分:1)

尝试清除事件日志?

答案 4 :(得分:1)

使用http://www.iis.net/expand/ApplicationWarmUp来预热您的应用 这适用于IIS 7.5 - 因此,如果您在Server R2上运行,那么它将起作用。

答案 5 :(得分:1)

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

答案 6 :(得分:0)

这听起来非常像背景编译;虽然如果你正在预编译,那应该不是问题。

我要看的第一件事是你的ORM(如果有的话)。特别是NHibernate有一个严重的启动损失,因为它在启动时在后台运行多个编译器,将数据层中的每个类转换为自己的内存中程序集。

答案 7 :(得分:0)

向达伦快速点头。这是在进行DLL更新后.NET应用程序的典型行为。在初始加载之后,一切都应该拉紧。

答案 8 :(得分:0)

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

如果您没有执行前者,我建议giving it a spin。与Web Deployment Projects结合使用,您可以更轻松地为每个版本部署网站。

答案 9 :(得分:0)

最初的缓慢是几件事:

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

这是ASP.NET的正常行为。

答案 10 :(得分:0)

  

@Mickey:不,它已关闭。我是否需要打开才能找到答案?

跟踪日志将显示每个操作需要多长时间。它可以帮助你找到需要这么长时间的事情。

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