IIS应用程序池会定期回收,造成Quartz.NET无法正常执行,我们可以通过配置IIS预加载功能,在IIS程序池回收的时候执行预操作,同时也可以让web程序首次访问更快。
这里环境配置为阿里云云主机生产环境,与本地测试环境会有不同,主要是服务器权限的问题。
一、开启IIS“应用程序初始化”功能
如果安装出现“无法打开匿名级安全令牌”,请参考以下链接 win2012R2无法打开匿名级安全令牌 - 浮山山主 - 博客园 (cnblogs.com)
二、设置IIS的网站,启用预加载
三、设置RuntimeBroker的启动和激活权限
windows+R 输入comexp.msc打开组件服务管理器,找到下图设置。
右键“runtimebroker”属性,进入“安全”选项卡
如果“编辑”按钮是禁用状态,需要修改注册表,参看以下链接
应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户_挨踢小二郎-CSDN博客
添加 IIS_USERS、NETWORK SERVICE、SYSTEM等账户,勾选启动和激活权限
四、设置进程池(高级设置),启动模式设置为AlwaysRunning
五、设置网站“配置编辑器”,设置预加载请求
设置过程中做好日志记录,方便调试。