Windows Server 2008 - IIS 7 - ASP.NET - 我的 Web 服务器是否进入睡眠状态?我如何让它保持清醒?

Bri*_*ter 6 windows-server-2003 windows-server-2008 iis-7 asp.net web-server

如果我的 web 服务器上的 asp.net 站点在一段时间内没有被访问,它们的加载速度似乎很慢。

如果 ASP.NET 处理器在一段时间内未使用,它是否会进入挂起或睡眠模式?

对我来说,通过配置 ASP.NET 或编写一些程序来经常访问我的站点以使其保持清醒来解决这个问题是否更好?

Ric*_*ter 5

根据您的配置,应用程序池分配给您的 ASP.net 应用程序,应用程序池将在一天中的某个时间或在一定数量的请求后回收。一旦发生这种情况,它会强制 ASP.net 重新编译站点。MSDN 上有一个关于 ASP.net 编译的很好的概述

StackOverflow上还有几个问题:

我使用两个步骤来改善它:

  1. 如果可能,请尽量避免在有人将要使用该站点时回收应用程序池。您应该能够通过使用Google Analytics或其他流量记录包来识别这一点。
  2. 在您的应用程序池回收后不久设置一些东西来访问您的网站,我广泛使用PolyMon作为我的现场服务器,所以我有一个监视器每 5 分钟检查一次站点是否健康,它为我完成这项工作。我已经将SPWakeUp用于 SharePoint 站点,它可能适用于任何 ASP.net 站点。

例如,如果您能够在 0200 确定您的站点很少使用,您可以按如下方式配置您的应用程序池(IIS 配置 -> 右键单击​​ AppPool -> 单击“回收...”):

Windows 7 应用程序池回收设置
(来源:richard-slater.co.uk

上面的对话框来自 Windows 7,但我认为 Windows 2008 和 Windows 7/2007 R2 之间的对话框没有太大变化。

  • 还有一个空闲超时,如果在那段时间内没有活动(请求),应用程序池将关闭。查看应用程序池高级设置。 (2认同)