简体   繁体   English

为什么Intranet在我们的计算机上这么慢?

[英]Why is intranet so slow on our machines?

we are using IIS 5 + Windows XP on our machines, they have Celeron CPUs @ 2.6 ghz, 2 GB RAM 我们在计算机上使用的是IIS 5 + Windows XP,它们具有Celeron CPU @ 2.6 GHz,2 GB RAM

These machines have control system for machinery, control system logs events to database and we want to show reports for machinery usage, operator logins, etc. We use Windows XP and IIS 5, our applications are ASP.NET (3.5). 这些机器具有用于机器的控制系统,控制系统将事件记录到数据库中,并且我们希望显示有关机器使用情况,操作员登录等的报告。我们使用Windows XP和IIS 5,我们的应用程序是ASP.NET(3.5)。 We use Sql server 2005 express and Crystal Reports 10.5 for reporting. 我们使用Sql Server 2005 Express和Crystal Reports 10.5进行报告。

The problem is, that whenever you open an intranet page after reboot or after longer period of webserver's inactivity, it takes a LOT of time for a page to react, 10-30 seconds. 问题在于,每当您在重新启动后或在较长时间的Web服务器不活动之后打开Intranet页面时,页面需要大量时间才能做出响应,即10到30秒。 When I open up a page that shows a report, it lags for this amount of time too. 当我打开显示报告的页面时,它也会滞后这段时间。

When pages are viewed after the first long load, they render quickly. 在第一次长时间加载后查看页面时,它们会快速呈现。

The pages are precompiled (helped a bit, but not much), disk is not fragmented, sql server reacts fast (tested with other applications) - I really don't know what's the cause, but I'd like to eliminate it, because this looks very bad with the customer - to wait for half a minute for a report page to display. 页面是预编译的(有帮助,但作用不大),磁盘没有碎片,sql server反应迅速(已通过其他应用程序测试)-我真的不知道是什么原因,但是我想消除它,因为对于客户来说,这看起来非常糟糕-等待半分钟才能显示报告页面。

Why is this so slow? 为什么这么慢? I have done some sample pages on php/mysql/iis and it was lightning fast... Is there something I can do to 'preload' all of the intranet applications on machine reboot? 我已经在php / mysql / iis上完成了一些示例页面,并且闪电般快速...是否可以做一些事情来在计算机重启时“预加载”所有Intranet应用程序? If nothing helps, I'll make a simple script that will periodically request all pages from the webserver, so it will be 'warmed up', but this is a dumb solution, I think. 如果没有帮助,我将制作一个简单的脚本,该脚本将定期从Web服务器请求所有页面,因此将被“预热”,但是我认为这是一个愚蠢的解决方案。 :( :(

我想大概是在第一个请求之前,网站的应用程序池才被加载-这次是进程外宿主进程开始运行并处理请求的过程。

IIS takes a few seconds to compile each ASPX page after a recycle. 回收后,IIS花费几秒钟来编译每个ASPX页。 You need to create a warmup script that programatically loads a few of your pages after the recycle. 您需要创建一个预热脚本,以在回收后以编程方式加载您的一些页面。 The script will incur the delay so your users don't have to. 该脚本将导致延迟,因此您的用户不必这样做。

Here is an example. 这是一个例子。 http://blogs.msdn.com/joelo/archive/2006/08/13/697044.aspx It's for SharePoint, but the concept is the same and you should be able to adapt it. http://blogs.msdn.com/joelo/archive/2006/08/13/697044.aspx适用于SharePoint,但是概念相同,您应该能够适应它。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM