0

我在 Windows Server 2003 上有一个使用 IIS 6 的 MVC3 C# .Net Web 应用程序。

我们遇到了一些性能问题。主要针对页面的初始加载。

我已将应用程序编译为发布模式,并且性能比在调试中要好得多。但是,页面的第一次加载仍然很慢,而且如果页面处于休眠状态一段时间,并且用户重新使用该应用程序,页面再次加载缓慢。在我看来,运行时编译正在进行中,一旦编译,对象会在一段时间后超时。

我可以做些什么来加快初始页面加载和扩展的休眠页面加载?

有没有办法在某个时间间隔自动模拟和加载页面?

谢谢

4

2 回答 2

3

您正在经历 IIS 中应用程序池的加载和卸载。将您的 Web 应用程序想象成您计算机上的任何桌面应用程序。实际打开程序需要时间,但是一旦打开 -> 程序中的操作运行得很快。因此,当您第一次访问 Web 应用程序时,IIS 会在应用程序池中启动应用程序。

您看到的第二项是 IIS 在一段时间不活动(默认 20 分钟)后卸载应用程序池。在默认期限之后,应用程序池处于卸载状态。当请求进入您的应用程序时,IIS 必须再次启动应用程序,然后才能为请求提供服务。

至于当用户第一次点击 Web 应用程序时,你真的无法做任何事情来加快速度,它会发生。每当您更改 web.config 或更改 Bin 文件夹中的项目时,IIS 都会回收应用程序池。

对于空闲超时问题,您可以调整 IIS 等待它卸载应用程序池的时间(我相信最多 29 小时)。

IIS 6 - 应用程序池超时更改

[IIS 7 - 应用程序池超时更改]

于 2012-08-27T19:57:35.693 回答
1

您可以预编译您的页面以加快初始加载时间。

有关详细信息,请参阅此 MSDN 部分: ASP.NET 网站预编译

弄乱应用程序超时(通过将其设置为非常大的值)可能会适得其反,因为它会禁用休眠应用程序的自动回收。

于 2012-08-27T20:16:45.457 回答