nssm工具可以将asp.net Framework、asp.net core、net6、.net8的webapi项目、mvc项目、控制台项目、winform项、WPF项目等注册为windows服务。
nssm可以将所有windows可执行文件注册为windows服务。
下面,使用nssm将asp.net8的webapi项目注册为windows服务为例:
【第一步】开发一个webapi、或mvc、或控制台项目。
将webapi项目发布到本的文件夹。
【第二步】,下载nssm工具。
下载地址:https://nssm.cc/download
下载后无需安装。
nssm常用命令
# 显示服务安装 GUI: nssm install [<servicename>]# 无需确认安装服务: nssm install <servicename> <app> [<args> ...]# 显示服务编辑 GUI: nssm edit <servicename># 直接检索或编辑服务参数: nssm dump <servicename> # 导出服务的所有参数 nssm get <servicename> <parameter> [<subparameter>] # 获取特定服务参数的值 nssm set <servicename> <parameter> [<subparameter>] <value> # 设置特定服务参数的值 nssm reset <servicename> <parameter> [<subparameter>] # 重置特定服务参数的值# 显示服务移除 GUI: nssm remove [<servicename>]# 无需确认移除服务: nssm remove <servicename> confirm# 管理服务: nssm start <servicename> # 启动服务 nssm stop <servicename> # 停止服务 nssm restart <servicename> # 重启服务 nssm status <servicename> # 显示服务状态 nssm statuscode <servicename> # 显示服务状态码 nssm rotate <servicename> # 旋转服务日志 nssm processes <servicename> # 显示服务关联的进程
【第三步】,编写执行nssm命令的批处理文件
(1)编写安装批处理文件(install.bat),可以随意给批处理文件命名,
chcp 65001 @echo.服务开始启动...... @echo off:: :: nssm install DFStore.CJStoreMgrApi "F:\wwwroot\nssm\DFStore.CJStoreMgrApi\DFStore.CJStoreMgrApi.WebApi.exe" --urls=http://localhost:8051 start=auto nssm install DFStore.CJStoreMgrApi "F:\wwwroot\nssm\DFStore.CJStoreMgrApi\DFStore.CJStoreMgrApi.WebApi.exe" --urls=http://*:8051 start=auto :: sc config DFStore.CJStoreMgrApi start= auto nssm start DFStore.CJStoreMgrApi @echo off @echo.服务启动完毕! @pause
参数 --urls是指定webapi站点启动的端口
(2)编写移除服务的批处理文件(remove. bat)
chcp 65001 @echo off @echo.开始删除服务...... nssm stop DFStore.CJStoreMgrApi nssm remove DFStore.CJStoreMgrApi @echo off @echo.服务删除完毕! @pause
批处理文件所在目录,可以随意指定。
【第四步】 将asp.net webapi项目发布后的.exe文件安装windows服务
(1) 将下载的nssm文件copy到 install.bat 与 remove.bat的同级目录,
copy到批处理命令的同级目录是为了方便管理,也可以不copy到同级目录,这时在编写的install.bat与remove.bat文件里需要指定nssm的绝对路径。
(2)将webapi项目注册为windows服务
用超级管理员权限打开cmd窗口,执行【intall.bat】批处理文件就可以将webapi项目注册为windows服务了。
在cmd窗口中定位到install.bat的所在目录,执行 【nstall.bat】批处理文件安装服务
服务安装成功,执行 services.msc命令打开服务管理窗口,查看服务启动情况
服务安装完成。
【第5步】御载服务
执行前面写后的 【remove.bat】批处理文件
选择是,确定移除服务。
服务御载完成。