【问题标题】:Slow first page load on asp.net siteasp.net 网站上的第一页加载缓慢
【发布时间】:2011-01-07 08:08:34
【问题描述】:

当我访问使用 asp.net 构建的站点时,时不时地(总是在长时间的空闲时间之后,例如一夜之间) - 加载页面大约需要 15 秒(在我看到任何进展之前 15 秒,然后页面会快速出现)。

该站点上的其他页面或刷新都像往常一样快 - 它们在其他机器上也很快,只有第一个似乎受到了“打击”。

页面跟踪从不通过任何事情(整个周期只有几分之一秒)

所以我的问题是我还应该去哪里寻找?也许是 IIS?还是它仍然是我的 asp.net 应用程序而我只是在错误的地方(跟踪)寻找线索?

由于我对 IIS 服务器没有太多控制权,所以在我去询问特定管理员之前,我可以通过 asp.net 检查的任何内容都会更有帮助。

干杯:D

【问题讨论】:

标签: asp.net performance iis


【解决方案1】:

如果您使用的是 IIS 7,则有一个 IIS 插件调用 Application Warm Up 会有所帮助

我在这里写了一篇关于我使用它的经验的博客文章(不知道我是否可以发布到我自己的内容中?):

http://www.diaryofaninja.com/blog/2010/05/06/keep-your-aspnet-websites-warm-and-fast-247

【讨论】:

    【解决方案2】:

    您还可以查看 4.0 框架的 Auto-Start 功能。

    【讨论】:

      【解决方案3】:

      进一步回答指出 IIS 将关闭空闲,当您的站点恢复时,您的 Application.OnStart 将触发(在您的 global.asa 中)如果您在这里做很多工作,这可能会减慢您的应用程序。 所有缓存上的其他事情都将为空,所有数据库连接都将断开。

      此行为可在 IIS 中配置,如果您无权访问 IIS 设置,一种解决此问题的巧妙方法是每 10 分钟从脚本或具有元刷新的特殊页面访问您的站点。

      您的另一个选择是接受当天的第一个页面点击将比正常页面多花几秒钟。

      【讨论】:

        【解决方案4】:

        我过去也遇到过同样的问题。我从来没有设法解决问题,但我怀疑 IIS 应用程序池是罪魁祸首。

        【讨论】:

          【解决方案5】:

          您可以安排应用程序池的回收,可能使用预热脚本。先给它自己的应用程序池,看看是否有帮助。

          【讨论】:

          • @Taboloo - 在应用程序池上使用预热脚本。如果您的应用程序很大和/或占用大量内存/cpu 空间,请确保配置池设置以处理此额外负载。
          【解决方案6】:

          IIS 应用程序池在 30 分钟不活动后关闭。之后,当您发出请求时,IIS 基本上必须重新启动网站,这会导致您所描述的行为。您可以在 iis 中更改网站的空闲时间来避免它。

          【讨论】:

          • 我会选择这个答案。除非您缺少系统资源,否则您可以增加超时值。
          • 感谢 klausbyskov 和所有其他帮助 - 非常感谢。我现在确切地知道在哪里看:)
          猜你喜欢
          • 2012-07-16
          • 2018-07-10
          • 1970-01-01
          • 1970-01-01
          • 2013-02-12
          • 2015-07-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多