我正在开发一个在我们工作的本地网络上托管的网站。它正在运行ASP.Net 2.0和IIS6。该站点使用母版页,并为搜索实用程序提供了一些代码文件(C#)。一旦页面加载,就会有几个.js文件和几个ajax调用。
此时网站不是很“重”,加载时间不应太长。出于某种原因,第一次加载网站时,在发生任何事情(20-24秒)之前会有很长的延迟。起初我认为这可能是该网站的编译时间,但我预编译它并没有任何区别。
访问后,网站加载速度非常快。经过一段时间(几个小时),随后的访问将
如果它有帮助,我在下面的firebug中包含了一些屏幕截图。
有没有人知道可能导致延迟的原因或我如何弄清楚发生了什么?
答案 0 :(得分:1)
由于我们的内部缓存活动,IIS启动aspnet_wp以及建立与各种数据库的连接,我们总是看到第一次启动时滞后很长时间。
如果将IIS设置为在指定的秒数,达到内存阈值或其他阈值后回收进程,您可能也会在后续访问中看到此内容。
关于您在初始启动时间中唯一可以做的事情是在启动期间仔细跟踪应用程序的活动。特别注意数据库连接和缓存,因为我们发现这是我们花费大部分时间的地方。
对于后续访问,我们总是删除IIS中的默认循环时间(大约22小时),并用固定时间循环替换它。它仍然没有帮助第一个请求,但至少你会知道它何时发生。
如果初始请求确实存在问题并且您无法弄清楚如何通过代码减少它,那么您可以安排一个小的.Net exe在循环时间后运行10分钟并使用WebClient来访问该站点一次为了让初始化过程不受影响。