.netcore发布独立版部署

.NetCore 在发布独立版时会打包独立环境,就算服务没有安装环境也能运行,这就是.NetCore跨平台的特性之一。
按照微软的传统配套,c#开发的项目一般都是发布打包程序部署在iis,但是.netcore 跨平台的,就是说当发布独立版时可以跨平台部署。


在发布独立版是,会把项目中的.net5.0 框架环境 和项目一起打包,这样就不用依赖部署的环境iis


这时发布的项目里面有exe程序 ,测试双击便能运行项目(跳过iis 部署)

项目已经可以运行

以上已经证明发布独立版 可以在不考虑服务器是否配置有.net5.0就可以运行部署,但是我必须手动把exe 先执行(启动项目),如果我把exe关闭了,那项目就停止了。

对此需要把exe设置自动启动,也就是创建windows 服务,设置自动启动

csharp 复制代码
/*windows 创建服务*/
sc create ServiceName binPath= "C:\Users\LIVE\Desktop\WebAPI_V2.1\WebAPI\bin\Debug\net5.0\WebAPI.exe"

/*设置服务自动启动*/
sc config ServiceName start= auto

/*启动服务*/
sc start ServiceName

/*删除服务*/
sc delete ServiceName


这里需要注意,sc start ServiceName 启动 会报错,应为这样的方式创建,只能执行exe,不能让exe应用打包的dll 文件,所以会报错1053

csharp 复制代码
sc start ServiceName   
提示:
[SC] StartService 失败 1053:
服务没有及时响应启动或控制请求

所以不能按这种方式去创建服务,需要另一种方式创建服务

NSSM部署Windows服务
下载
NSSM官网地址:http://www.nssm.cc


PowerShell执行以下命令
通过 nssm install SerivceName 命令创建服务,执行命令后后弹出服务安装窗口

csharp 复制代码
./nssm install ServiceWebAPI2

选择打包后的exe,这时可以关联到exe和启动引用的dll




然后把windows 服务设置自动启动,这时就不会报错1053

csharp 复制代码
StartService 失败 1053:
服务没有及时响应启动或控制请求

ServiceWebAPI2 服务安装成功后,并没有启动,我们可以使用服务管理器来启动、停止服务,当然我们也可以使用nssm来来控制服务的启动、停止、暂停等,常用命令如下:

csharp 复制代码
nssm install <servicename>          //安装服务
nssm remove <servicename>           //卸载服务
nssm start <servicename>            //启动服务
nssm stop <servicename>             //停止服务
nssm restart <servicename>          //重启服务
nssm status <servicename>           //查看服务
nssm pause <servicename>            //暂停服务
nssm continue <servicename>         //继续服务

成功部署

参考

相关推荐
小先生8125 天前
.NET Core后台任务队列
.net·.netcore
MoFe15 天前
【.net core】【watercloud】动态数据转换为静态表格,或者表格数据返回需要后处理
.netcore
吹牛不交税11 天前
.netcore项目部署在ubuntu22.04虚拟机的docker中的过程记录
docker·容器·.netcore
weixin_4219947814 天前
基于 .NET 9.0 的高性能轻量级令牌桶限流服务
.net·.netcore·令牌桶
weixin_4219947814 天前
MVC 模式初探
mvc·.net·.netcore
weixin_4219947816 天前
互联网与 Web 应用简介
.net·.netcore
全栈小518 天前
【C#】合理使用DeepSeek相关AI应用为我们提供强有力的开发工具,在.net core 6.0框架下使用JsonNode动态解析json字符串,如何正确使用单问号和双问号做好空值处理
人工智能·c#·json·.netcore·deepseek
时光追逐者19 天前
C#/.NET/.NET Core优秀项目和框架2026年1月简报
c#·.net·.netcore
大尚来也21 天前
双库协同,各取所长:.NET Core 中 PostgreSQL 与 SQLite 的优雅融合实战
postgresql·sqlite·.netcore
吹牛不交税22 天前
admin.net-v2 框架使用笔记-netcore8.0/10.0版
vue.js·.netcore