IIS微服务5分钟自动预热守护服务

一、这是干什么的?(大白话)

服务器IIS部署的系统,放着不用会休眠,用户第一次打开页面会卡顿、加载慢。

这个工具作用:

  • 服务器开机自动把所有网站、服务全部唤醒

  • 每5分钟自动主动唤醒一次所有服务

  • 全程后台悄悄运行,不弹窗、不产生日志、不占磁盘空间

  • 彻底解决系统冷启动卡顿问题

二、前置说明(必看)

  • 支持 D盘、E盘、C盘任意位置 存放文件,不强制固定路径

  • 服务器固定内网IP:10.31.20.108

  • 所有站点只绑定了内网IP,不能用127.0.0.1访问,脚本已全部适配正确IP

  • 出现「网页解析失败」属于正常现象:微服务Health接口是纯后台接口,不是网页,浏览器会提示解析失败,但不影响预热生效,可以忽略!

三、准备工作(30秒搞定)

3.1 新建文件夹

在你想要的磁盘(推荐D盘)新建文件夹:D:\Scripts

文件夹里面放两个文件:

  1. nssm.exe 工具文件

  2. IIS_WarmUp.bat 脚本文件(下面复制)

3.2 复制最终可用脚本(直接照搬)

新建文本文档,粘贴下面全部代码,保存为:IIS_WarmUp.bat

保存编码选择:ANSI

batch 复制代码
@echo off
chcp 65001 >nul 2>&1
set APPCMD=%windir%\system32\inetsrv\appcmd.exe

:: 开机只执行一次:等待IIS就绪、拉起所有站点和应用池
ping -n 36 127.0.0.1 >nul 2>&1
%APPCMD% list apppool /xml | %APPCMD% start apppool /in >nul 2>&1
%APPCMD% list site /xml | %APPCMD% start site /in >nul 2>&1
ping -n 16 127.0.0.1 >nul 2>&1

goto CALL_HEALTH

:: 每5分钟循环休眠
:LOOP_SLEEP
ping -n 301 127.0.0.1 >nul 2>&1

:: 批量预热所有微服务
:CALL_HEALTH
for %%u in (
http://10.31.20.108:55000/Health
http://10.31.20.108:55001/Health
http://10.31.20.108:55002/Health
http://10.31.20.108:55003/Health
http://10.31.20.108:55004/Health
http://10.31.20.108:55005/Health
http://10.31.20.108:55006/Health
http://10.31.20.108:55007/Health
http://10.31.20.108:55012/Health
http://10.31.20.108:55013/Health
http://10.31.20.108:55014/Health
http://10.31.20.108:55015/Health
http://10.31.20.108:55020/Health
http://10.31.20.108:55021/Health
http://10.31.20.108:55022/Health
http://10.31.20.108:55023/Health
http://10.31.20.108:55024/Health
http://10.31.20.108:55031/Health
http://10.31.20.108:55032/Health
http://10.31.20.108:55033/Health
http://10.31.20.108:55034/Health
http://10.31.20.108:55035/Health
http://10.31.20.108:55036/Health
http://10.31.20.108:55037/Health
http://10.31.20.108:55038/Health
) do (
    powershell -Command "try{Invoke-WebRequest -Uri '%%u' -TimeoutSec 8 -UseBasicParsing | Out-Null;}catch{}" >nul 2>&1
)

goto LOOP_SLEEP

四、测试脚本(必须做,10秒完成)

  1. 右键CMD,选择【以管理员身份运行】

  2. 输入命令进入目录:cd /d D:\Scripts

  3. 输入命令运行脚本:IIS_WarmUp.bat

✅ 正常结果:窗口没有任何文字、不闪退、一直挂着 = 完全正常

测试无误后关闭CMD窗口即可。

五、安装为系统后台服务(开机自启)

5.1 安装命令

管理员CMD输入:D:\Scripts\nssm.exe install SPC_IIS_WarmUpService

弹出配置窗口,全部按下面填写:

5.2 基础配置

  • Path:D:\Scripts\IIS_WarmUp.bat

  • Working directory:D:\Scripts

  • 服务名称:SPC-IIS微服务预热守护服务

5.3 启动设置

Details 页面选择:Automatic (Delayed Start) 延迟启动

作用:开机等系统IIS就绪后再运行,避免启动失败

5.4 故障自动重启设置

Recovery 页面全部选择:Restart the service

重启延迟:60000毫秒(60秒)

其他设置全部默认,点击OK保存

六、服务启停命令(日常使用)

管理员CMD执行:

  • 启动服务:net start SPC_IIS_WarmUpService

  • 停止服务:net stop SPC_IIS_WarmUpService

  • 卸载服务:D:\Scripts\nssm.exe remove SPC_IIS_WarmUpService confirm

七、小白必懂运行逻辑

  • 服务刚启动一瞬间:自动打开所有关闭的网站、服务

  • 之后永久循环:休眠5分钟 → 预热所有服务 → 再休眠5分钟

  • 已经运行的服务不会被重启、不会影响业务使用

  • 全程无日志、无弹窗、无报错、静默运行

八、常见问题解答(小白排错)

问题1:浏览器打开Health提示「网页解析失败」

✅ 正常现象,不用修、不用管。Health是后台检测接口,不是网页,本来就打不开,脚本可以正常识别并预热服务。

问题2:脚本运行没有任何输出

✅ 正常!专门做成无日志静默运行,避免占用硬盘。

问题3:服务器不重启,只重启服务有影响吗?

无任何影响,只会唤醒关闭的服务,正在运行的业务完全不受影响。

问题4:部分服务预热失败

大概率是IIS应用池崩溃被系统禁用,需要人工在IIS里面开启对应程序池。

九、部署完成验收标准

  • Windows服务状态为【正在运行】

  • 启动类型为【延迟自动启动】

  • 脚本运行不闪退、无报错

  • 服务器重启后服务自动运行

(注:部分内容可能由 AI 生成)

相关推荐
Shulex4 小时前
跨境电商 AI Agent 核心架构解析:从只读问答到自主执行的工程落地
人工智能·架构·智能客服·跨境电商
钱工的门窗技术笔记4 小时前
室内极窄全景移门的支承路径与预留接口:轨道形式、型材壁厚口径与验收边界
物联网·架构·数据分析
码农小旋风4 小时前
Ray分布式计算引擎介绍
人工智能·架构
时间售卖铺5 小时前
触发器与函数实战:MySQL高效编程秘诀
运维·数据库·mysql·云原生
ZhengEnCi5 小时前
Agent 架构怎么选:从单 Agent 到多 Agent 编排的选型决策指南
算法·架构
星融元asterfusion5 小时前
工业网络升级实战:100G 双轨 Leaf-Spine 架构破解高并发出货网络瓶颈
网络·架构·spine
天远数科6 小时前
零信任架构实战:基于天远企业法人四要素高级版构建自动化供应商资质穿透核验网关
人工智能·架构·自动化
深蓝AI7 小时前
苹果智能入华拆解:八样首批功能、支持的机型、千问在三个入口的位置
人工智能·架构
海宇大数据8 小时前
零信任架构实战:基于海宇全能小微企业报告构建自动化持牌网络小贷小微商户极速助业贷秒级全维风险决策网关
网络·人工智能·架构·自动化
云-缩影10 小时前
拆解函数计算 Serverless GPU 部署 AI 模型:Flux 生图和语音复刻怎么跑的
人工智能·云原生·serverless