IIS应用程序池会定期回收,造成Quartz.NET无法正常执行,我们可以通过配置IIS预加载功能,在IIS程序池回收的时候执行预操作,同时也可以让web程序首次访问更快。
这里环境配置为阿里云云主机生产环境,与本地测试环境会有不同,主要是服务器权限的问题。
一、开启IIS“应用程序初始化”功能

如果安装出现“无法打开匿名级安全令牌”,请参考以下链接 win2012R2无法打开匿名级安全令牌 - 浮山山主 - 博客园 (cnblogs.com)
二、设置IIS的网站,启用预加载

三、设置RuntimeBroker的启动和激活权限
windows+R 输入comexp.msc打开组件服务管理器,找到下图设置。

右键“runtimebroker”属性,进入“安全”选项卡

如果“编辑”按钮是禁用状态,需要修改注册表,参看以下链接
应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户_挨踢小二郎-优快云博客
添加 IIS_USERS、NETWORK SERVICE、SYSTEM等账户,勾选启动和激活权限

四、设置进程池(高级设置),启动模式设置为AlwaysRunning

五、设置网站“配置编辑器”,设置预加载请求


设置过程中做好日志记录,方便调试。
本文介绍了如何配置IIS的‘应用程序初始化’功能,以防止应用程序池回收导致Quartz.NET任务中断。步骤包括开启IIS预加载、设置RuntimeBroker权限、设置进程池启动模式以及预加载请求。此配置适用于阿里云生产环境,有助于提升web程序首次访问速度并确保后台任务的连续性。在设置过程中需要注意服务器权限问题,并做好日志记录以便调试。
1823

被折叠的 条评论
为什么被折叠?



