IIS 6.1 - 始终 运行 网站使用 Hangfire 进行后台作业

IIS 6.1 - Always running web site with Hangfire for background jobs

我想在 IIS 6.1(无法更改)上创建一个 ASP.NET 网站,该网站既不会回收也不会关闭。我希望它永远是 运行 并且一秒钟都不会停止。

是否有任何内置功能可以帮助我实现这一目标?

(我无法创建 Windows 服务。我需要一个网站。)

解决方法和不太可取的解决方案是创建一个常规网站并创建一个 windows 计划任务,该任务以固定间隔调用该网站中的函数,因此它永远不会回收。

您知道 IIS 7.* 或 IIS 8 是否支持这样的功能吗?

** 编辑

这将是一个网站 运行 Hangfire 用于后台任务。 当然,Windows Service + Hangfire 解决方案更好,但由于缺乏时间以及为了让我们的开发人员保持简单,我们更容易维护一个运行后台作业的网站。

在应用程序池下,将 idleTimeout 设置为 0。这将禁用空闲超时回收。

根据框架、框架版本等,可能需要考虑不同的配置。

最好的方法是检查评估这个确切问题的 official docs。 例如,如果您构建一个 .NET Core 应用程序,保持应用程序存活的步骤是:

  • 托管管道模式:Integrated
  • 将启动模式设置为“始终运行”。
  • 将空闲 Time-Out(分钟)设置为 0。
  • 设置Preload Enabled = True
  • 转到您应用程序上的配置编辑器,然后导航至 system.webServer/applicationInitialization。设置以下设置:

doAppInitAfterRestart: True 打开 Collection… 省略号。在下一个 window 中,单击添加并输入以下内容:

  • 主机名:{URL Hangfire 应用程序的主机}
  • initializationPage:{Hangfire 控制面板的路径,例如 /hangfire}