应用程序池在回收后无法启动,直到站点访问

时间:2016-08-17 21:01:52

标签: asp.net iis

我遇到了我们托管的网站的问题,它位于带有IIS 7的Windows Server 2012 R2上。此服务器上有超过8个网站(所有软件都相同)。

我们遇到一个网站的问题,当应用程序池回收时,它会重新上线,直到有人试图访问网站(www.something.com),一旦发生这种情况,您会看到网站应用程序池上线在任务管理器中,记录开始在站点中发生。

采取的步骤:

  1. 在IIS中重新创建了网站
  2. 从已知工作站点重新创建根目录中的文件
  3. 使用设置重新创建应用程序池以镜像另一个已知站点(请记住它们都是相同的)
  4. 每个站点都有自己的根文件结构和应用程序池

    事件查看器不会提及任何问题。

    站点日志只显示停止和重新启动的位置。没有错误

    所有网站均为.net 2.0 32位

    据我所知,似乎应用程序池正在等待访问域的用户启动的请求,但无法确定问题所在。

3 个答案:

答案 0 :(得分:5)

这是IIS的标准行为,而不是错误或问题。该站点仅在首次访问时进入内存,通常需要比后续访问更长的时间。我知道让网站始终加载的唯一方法是设置某种cron作业,以便经常轮询网站。还有一些网站监控工具可用于执行此操作以及更多工作,还可以报告网站是否无法访问。

答案 1 :(得分:0)

解决方案是使用简单命令在事件ID 1033上创建计划任务:

powershell -Command "Invoke-WebRequest http://localhost:8081"

从SYSTEM帐户运行

答案 2 :(得分:0)

可以使用当前的 IIS 完成。

只需添加“应用程序初始化模块”,将池启动模式设置为“始终运行”并将站点预加载启用设置为true。

在此处找到答案:Use IIS Application Initialization for keeping ASP.NET Apps alive