我们内部使用的ASP.NET核心应用程序在办公时间使用,批处理应该每天早上3点处理,HangFire如下所示:
RecurringJob.AddOrUpdate(
() => MyBatch(),
"0 0 3 1/1 *");
Run Code Online (Sandbox Code Playgroud)
问题是应用程序池进入休眠状态,如果站点未手动启动(通常访问网站),则不处理批处理.
我用来修改设置的一些来源:
应用程序池总共使用了7个应用程序(在应该处理批处理的夜晚都处于非活动状态).使用的应用程序池使用.NET CLR Version 2.0.我正在使用IIS版本10.0.17134.1.
如何使应用程序池保持活动状态,以便每天早上定期调用批处理?
我遇到了同样的问题,即使将“AlwaysRunning”作为应用程序池的启动模式,将站点的“Preload Enabled”设置为 true,并将空闲超时设置为 0,我的 ASP.NET Core 应用程序也会进入空闲状态。我明白了通过安装应用程序初始化模块并将 .NET CLR 版本设置为 v4.0来工作。不要使用“无托管代码”,因为这会阻止“始终运行”触发应用程序启动。
我就此写了一篇博文,更详细地解释了我为使应用程序持续运行而采取的步骤。
他们获得了有关如何设置服务不间断运行的文档。
我的经验(使用较旧的 IIS 版本 7.5、8.0)是它可以工作,但不适用于应用程序池回收/域卸载。我的解决方法是在 application_end 事件上发送初始化请求。
| 归档时间: |
|
| 查看次数: |
2391 次 |
| 最近记录: |