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

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

看来,如果我的 Web 服务器上的 asp.net 网站有一段时间没有被访问的话,它们的加载速度会非常慢。

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

我是否最好通过配置 ASP.NET 或编写一些程序来时常访问我的网站以使其保持唤醒状态来解决这个问题?

答案1

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

StackOverfolow 上还有几个问题:

我使用两个步骤来改善这一点:

  1. 如果可能的话,尽量避免在有人使用网站时回收应用程序池。您应该能够通过使用以下方法识别此情况:谷歌分析或其他流量记录包。
  2. 设置一些东西在你的应用程序池回收后立即访问你的网站,我使用聚蒙对我的现场服务器来说,我非常依赖它,所以我有一个监视器,每 5 分钟检查一次网站是否健康,它帮我完成了这项工作。我曾经使用过唤醒服务适用于 SharePoint 网站,可能可以适用于任何 ASP.net 网站。

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

Windows 7 Application Pool Recycling Settings
(来源:richard-slater.co.uk

上述对话框来自 Windows 7,但我认为 Windows 2008 和 Windows 7/2007 R2 之间的对话框并没有发生很大变化。

答案2

可能是应用程序池一直处于空闲状态。您可以将空闲超时设置更改为 0(零),这样可以有效地禁用超时,这样应用程序池就不会因为空闲而关闭。您可以在高级设置下的 GUI 中找到此设置。请参阅此博客文章: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信息在这里http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-application-initialization#TOC301259898

相关内容