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

看来我的web服务器上的asp.net网站加载非常缓慢,如果他们没有被访问一段时间。

如果ASP.NET处理器在一段时间内未使用,是否会进入暂停或hibernate模式?

通过configurationASP.NET或编写一些程序来访问我的网站每隔一段时间保持清醒状态来解决这个问题对我来说更好吗?

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

在StackOverfolow上也有几个问题:

  • ASP.NET Web站点项目在编译时本质上是缓慢的,还是我有更深的问题?
  • ASP.Net预编译和启动时间
  • 什么导致IIS中的应用程序池回收?

有两个步骤,我使用这个更好:

  1. 如果可能,尽量避免在某人准备使用该站点的时候回收应用程序池。 您应该可以通过使用Google Analytics或其他stream量logging软件包来识别这一点。
  2. 设置一些东西打你的网站不久后,你的应用程序池已经回收利用,我广泛使用PolyMon为我的现场服务器,所以我有一个显示器,检查该网站是健康的,每5分钟为我做这项工作。 我已经使用SharePoint网站的SPWakeUp ,可能适用于任何ASP.net站点。

例如,如果您能够确定您的网站在0200很less使用,则可以按如下方式configuration您的应用程序池(IISconfiguration – >右键单击应用程序池 – >单击“回收…”):

Windows 7应用程序池回收设置http://www.richard-slater.co.uk/wp-content/uploads/2010/02/Win7IISAppPool.png

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

这可能是应用程序池已空闲。 您可以将设置的空闲时间更改为0(零),从而有效地禁用超时,从而使应用程序池永远不会由于空闲而closures。 你可以在高级设置下在gui中find这个设置。 看到这个博客文章: http : //brad.kingsleyblog.com/IIS7-Application-Pool-Idle-Time-out-Settings 。 你也可以使用像smartping这样的工具(我没有使用id) http://forums.smartertools.com/showthread.php/8511-SmarterPing-Website-Keep-Alive-Utility 。 另外还有一个来自微软的新模块,可以与IIS7.5一起使用http://www.iis.net/downloads/microsoft/application-initialization info http://www.iis.net/learn/get-started/whats-新在-IIS-8 / IIS-80的应用程序的初始化#TOC301259898