ASP.NET网站首次加载缓慢

40

时不时地(通常在长时间闲置后,例如过夜)访问使用asp.net构建的网站时,首次加载页面需要大约15秒钟时间(在此之前我看不到任何进展,然后页面会很快地出现)。

该站点上的其他页面或刷新操作像往常一样快速 - 它们在其他计算机上也很快,只有第一个页面似乎需要“被打击”。

页面跟踪没有发现任何问题(整个周期仅为几分之一秒)

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

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

谢谢: D


1
使用 ngen.exe 对这种问题有帮助吗?http://msdn.microsoft.com/en-us/library/6t9t5wcf(VS.80).aspx - jason saldo
6个回答

40

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


1
我会选择这个答案。除非你的系统资源不足,否则你可以增加超时时间。 - modernzombie
感谢klausbyskov和其他所有帮助的人 - 非常感激。我现在知道该去哪里找了 :) - Tabloo Quijico

21

10

5

您可以安排应用程序池的回收,可能会使用预热脚本。首先为其提供自己的应用程序池,看看是否有帮助。


1
@Taboloo - 在应用程序池上使用预热脚本。如果您的应用程序很大和/或占用了大量的内存/CPU空间,则确保配置您的池设置以处理这种额外负载。 - Joel Etherton

5
进一步回答指出,IIS会关闭空闲的站点,当您的站点重新启动时,Application.OnStart会触发(在global.asa中)。如果您在此处执行了大量工作,则可能会减慢应用程序的速度。所有缓存都将被清空,所有数据库连接都将被断开,还有其他事情正在进行。
这种行为可以在IIS中进行配置,如果您无法访问IIS设置,则可以通过每10分钟从脚本或具有元刷新的特殊页面访问您的站点来解决此问题。
另一个选择是接受每天的第一次页面访问需要比平常多几秒钟的时间。

3

我以前遇到过同样的问题。我从未成功地找到问题的根源,但我怀疑IIS应用程序池可能是罪魁祸首。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接