使用NSSM将.net core WebApi项目发布为windows服务(转载)

NSSM 介绍

NSSM是一个服务封装程序,它可以将普通exe程序封装成服务,使之像windows服务一样运行。同类型的工具还有微软自己的srvany,不过nssm更加简单易用,并且功能强大。它的特点如下:

支持普通exe程序(控制台程序或者带界面的Windows程序都可以)
安装简单,修改方便
可以重定向输出(并且支持Rotation)
可以自动守护封装了的服务,程序挂掉了后可以自动重启
可以自定义环境变量
这里面的每一个功能都非常实用,使用NSSM来封装服务可以大大简化我们的开发流程了。

开发的时候是一个普通程序,降低了开发难度,调试起来非常方便
安装简单,并且可以随时修改服务属性,更新也更加方便
可以利用控制台输出直接实现一个简单的日志系统
不用考虑再加一个服务实现服务守护功能

安装与发布

1、下载nssm

下载地址:http://www.nssm.cc/download

 

 

 

将下载的压缩包解压

 

2、将.net core 项目发布

方式一:直接发布

 1、借助VS2022发布WebApi,参考下述界面设置发布即可。(对于asp.net core 程序,官方给出了两种部署模式----依赖部署及独立部署,官方默认的模式为依赖部署。)

 

 

 

 2.使用nssm按照asp.net core 为windows服务

下载NSSM,使用命令窗口至NSSM目录中找到nssm.exe所在的目录,然后运行nssm install,然后会弹框,选择相应的文件和文件夹。

 

 

Path:独立部署模式发布的asp.net core webapi 的程序exe;

Startup directory:程序所在的目录,就是最后程序exe所在的目录;

Arguments:程序exe的名称,一般是项目名加上.exe;

Service name:在此写上服务的名称即可。

然后点击Install service按钮就完成了部署。

最后到Windows服务管理界面找到安装的服务名称,右键启动即可,或者直接运行nssm start 服务名称,也可以运行net start 服务名称。这样就可以非常简单的把.Net Core托管至Window服务中。方便管理、启动、停止等等。

命令窗口至NSSM目录中找到nssm.exe所在的目录,然后运行nssm,会看到NSSM的更多操作

 

 

 

方式二:使用.bat

1、创建.net core 项目bat启动脚本命令文件,命名为Start.bat,脚本代码如下

cd %~dp0
dotnet WebAPICore.dll
pause

将bat文件放入.net core 发布包的文件夹下

注:WebAPICore.dll为发布的.net core的项目名称;根据实际项目名称来写

 2、使用nssm安装服务

1)以管理员身份运行cmd,通过cd命令进入nssm.exe文件夹

 

 

 2)执行命令 nssm insatll WebApiService(注:WebApiService为服务名称,可根据实际情况命名服务名称)

 

 

Path 中输入.net core webapi  Start.bat文件路径

Starup directory  选择.net core webapi发布文件路径

然后点击Install service

 

 

然后在服务中会看到安装的.net core 项目的服务

 

 

NSSM常用命令

安装服务:nssm install 服务名
删除服务:nssm remove 服务名
删除服务确定:nssm remove 服务名 confirm
修改服务(显示界面修改):nssm edit 服务名
启动服务:nssm start 服务名
停止服务:nssm stop 服务名
重启服务:nssm restart 服务名

 更多命令请参考官网说明:https://nssm.cc/commands

 

文章内容转载,参考下述链接:

https://blog.csdn.net/liwan09/article/details/119530286

https://www.cnblogs.com/defly/p/15919817.html

 

posted @ 2022-04-11 17:07  浅巷深念  阅读(1400)  评论(0编辑  收藏  举报