我们在我们的机器上使用IIS 5 + Windows XP, 他们有Celeron CPU @ 2.6 ghz,2 GB RAM
这些机器具有机械控制系统,控制系统将事件记录到数据库,我们希望显示机器使用情况,操作员登录等报告。 我们使用Windows XP和IIS 5,我们的应用程序是ASP.NET(3.5)。我们使用Sql server 2005 express和Crystal Reports 10.5进行报告。
问题是,每当您在重新启动后或在较长时间的网络服务器不活动后打开内部网页时,页面需要很长时间才能做出反应,10-30秒。当我打开一个显示报告的页面时,它也会延迟这段时间。
在第一次长时间加载后查看页面时,它们会快速呈现。
这些页面是预编译的(有点帮助,但不多),磁盘没有碎片,sql server反应快(用其他应用程序测试) - 我真的不知道是什么原因,但我想消除它,因为这对客户来说非常糟糕 - 等待半分钟才能显示报告页面。
为什么这么慢?我已经在php / mysql / iis上做了一些示例页面,而且速度很快......我可以做些什么来在机器重启时“预加载”所有内部网应用程序?如果没有任何帮助,我将创建一个简单的脚本,定期请求来自网络服务器的所有页面,因此它将“预热”,但我认为这是一个愚蠢的解决方案。 :(
答案 0 :(得分:2)
我猜可能在第一次请求之前没有加载网站的应用程序池 - 这次是进程外主机进程开始运行并提供请求。
答案 1 :(得分:1)
IIS在回收后需要几秒钟来编译每个ASPX页面。您需要创建一个预热脚本,在回收后以编程方式加载一些页面。该脚本将导致延迟,因此您的用户无需延迟。
这是一个例子。 http://blogs.msdn.com/joelo/archive/2006/08/13/697044.aspx它适用于SharePoint,但概念是相同的,您应该能够适应它。