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}
我想在 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}