2010-01-20 105 views
39

当我访问使用asp.net构建的网站时,每隔一段时间(总是经过长时间的空闲时间,例如一夜之间) - 加载页面大约需要15秒(在我看到任何进展之前15秒,然后页面快速出现)。在asp.net网站上缓慢加载第一页

该网站上的其他网页或刷新网页的速度与往常一样快 - 它们在其他机器上也很快,只有第一个网页似乎需要“打”。

页面跟踪从来没有经历过任何东西(整个周期是几分之一秒)

所以我的问题是有什么地方我应该找?也许IIS?或者它可能仍然是我的asp.net应用程序,我只是在错误的地方(追踪)寻找线索?

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

欢呼:d

+1

是否使用ngen.exe帮助,这类型的问题? http://msdn.microsoft.com/en-us/library/6t9t5wcf(VS.80).aspx – 2010-01-20 16:10:17

回答

39

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

+1

我会去这个答案。 Usnless你缺乏系统资源,你可以增加超时值。 – modernzombie 2010-01-20 15:56:11

+0

感谢klausbyskov和所有其他帮助 - 非常感谢。我知道现在到哪里看:) – 2010-01-20 16:37:13

5

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

+1

@Taboloo - 在应用程序池上使用热身脚本。如果你的应用程序很大并/或占用大量内存/ cpu空间,那么请确保你配置你的池设置来处理这个额外的负载。 – 2010-01-20 15:59:12

2

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

5

当您的站点备份您的Application.OnStart将触发(在您的global.asa中)的情况下,如果您在此处做了大量工作,这可能会减慢您的应用程序。 所有缓存中的其他内容都将为空,所有数据库连接将断开连接。

如果您无法访问IIS设置,则可以在IIS中对此行为进行配置,这种方法是每隔10分钟从脚本或具有元刷新的特殊页面击中网站。

您的其他选择是接受当天的第一页命中需要几秒钟,然后再使用。