1

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

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

4

3 回答 3

3

那是 IIS 关闭工作进程 - 默认是 20 分钟的空闲时间。在 IIS6 中,您可以配置应用程序池并关闭空闲超时(在性能选项卡上)。在 IIS7 中,它位于 Advanced Settings中。

于 2009-08-04T20:18:39.437 回答
1

使工作进程保持活动状态的一种常见方法(尽管对我来说看起来很骇人听闻)是让一些程序定期向应用程序中的某个 URL 发出 Web 请求。

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

于 2009-08-04T20:11:06.160 回答
1

我确实为 IIS 中的应用程序池找到了一些推荐设置。这些设置的预期结果是减少应用程序需要通过启动周期的次数。这些设置应适用于 IIS 6 和 IIS 7:

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