克服编译(?)暂停* secondary *初始ASP.Net应用程序启动?

时间:2009-08-04 20:02:20

标签: asp.net iis application-pool

将ASP.Net应用程序部署到新服务器后,第一个点击该应用程序的用户会暂停一段时间,大概是因为该应用程序正在执行其初始编译。但是,在应用程序超时并从内存中卸载后,这种暂停似乎也会发生。

第一次编辑是可以容忍的,因为它只会让人兴奋一次,但第二次编辑在我看来应该是不必要的......是否有解决这个问题的解决方法?能够扩展应用程序超时会很好,但我只看到一种扩展会话超时的方法,我宁愿不这样做,因为这会将所有用户会话保留在内存中很长一段时间。

3 个答案:

答案 0 :(得分:3)

这是IIS关闭工作进程 - 默认是20分钟的空闲时间。在IIS6中,您可以配置app pool and turn off the Idle timeout(在“性能”选项卡上)。在IIS7中,it's in the Advanced Settings

答案 1 :(得分:1)

让工作进程保持活跃的一种常见方式(虽然看起来很惹我生气)是让一些程序定期向应用程序中的某些URL发出Web请求。

您可以通过使用aspnet_compiler.exe预编译ASP.NET应用程序来缩短初始启动时间。这不会将初始请求时间减少到零(它仍然需要创建工作进程并进行其他内务处理。)但它会明显减少它。

答案 2 :(得分:1)

我确实在IIS中找到了App Pools的一些推荐设置。这些设置的预期结果是减少应用程序完成启动周期所需的次数。这些设置应该适用于IIS 6以及IIS 7:

  • 回收工作进程:禁用。仅当您有多个网站并且正在尝试隔离进程时才使用此选项。
  • 空闲后关闭工作进程(以分钟为单位):禁用,除非您在服务器上共享资源。禁用此设置后,您的网站不应卸载,以确保您网站的启动时间尽可能小。