我在Windows Server 2003上使用IIS 6创建了一个MVC3 C#.Net Web应用程序。
我们遇到了一些性能问题。主要是在页面的初始加载。
我已将应用程序编译为Release模式,性能优于Debug。但是,页面的第一次加载仍然很慢,如果页面处于休眠状态一段时间,并且用户重新启动应用程序,页面会再次缓慢加载。在我看来,运行时编译正在进行,一旦编译,对象会在一段时间后超时。
如何加快初始页面加载和扩展的休眠页面加载?
有没有办法在某个时间间隔自动模拟和加载页面?
由于
答案 0 :(得分:3)
您在IIS中加载和卸载应用程序池时遇到的问题。将您的Web应用程序想象为计算机上的任何桌面应用程序。实际打开程序需要时间,但一旦打开 - >程序中的操作很快就会运行。因此,当您第一次点击Web应用程序时,IIS正在应用程序池中启动应用程序。
您看到的第二个项目是IIS在一段时间不活动后卸载应用程序池(默认为20分钟)。在默认期间之后,应用程序池将被卸载。当请求进入您的应用程序时,IIS必须再次启动应用程序才能提供请求。
至于用户第一次点击Web应用程序时,没有什么可以真正做到的,以加快速度,它发生了。无论何时更改web.config或更改Bin文件夹中的项目,IIS都将回收应用程序池。
对于空闲超时问题,您可以调整IIS等待卸载应用程序池的时间(我相信最长可达29小时)。
答案 1 :(得分:1)
您可以预编译页面以加快初始加载时间。
有关详细信息,请参阅此MSDN部分: ASP.NET Web Site Precompilation
混淆应用程序超时(通过将其设置为非常大的值)可能会产生相反的效果,因为它会禁用休眠应用程序的自动回收。