.netcore发布独立版部署

news/2024/5/19 22:08:46 标签: .netcore

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

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

在这里插入图片描述
这时发布的项目里面有exe程序 ,测试双击便能运行项目(跳过iis 部署)
在这里插入图片描述
项目已经可以运行
在这里插入图片描述

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

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

/*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

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

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

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

在这里插入图片描述
PowerShell执行以下命令
通过 nssm install SerivceName 命令创建服务,执行命令后后弹出服务安装窗口

./nssm install ServiceWebAPI2

选择打包后的exe,这时可以关联到exe和启动引用的dll
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后把windows 服务设置自动启动,这时就不会报错1053

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

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

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

成功部署
在这里插入图片描述
参考


http://www.niftyadmin.cn/n/4977015.html

相关文章

LiteOS qemu realview-pbx-a9 环境搭建与运行

前言 最近打算移植搭建 一些常见的 RTOS 的 qemu 开发学习环境&#xff0c;当前 RT-Thread、FreeRTOS 已经成功运行 qemu&#xff0c;LiteOS 初步验证可以正常 运行 qemu realview-pbx-a9&#xff0c;这里做个记录 首先学习或者研究 RTOS&#xff0c;只是看内核源码&#xff0…

c++系列之指针

今天不是做题系列&#xff0c;是知识系列啦。 说到指针&#xff0c;我们初学这一定会气的牙痒痒把&#xff0c;笔者也是&#xff0c;这么我好久而不得呀&#xff0c;今天来让我们聊聊指针。 其一 首先&#xff0c;我们明确的知道&#xff0c;假如我们开一个变量&#xff0c;…

怎么在线制作思维导图?分享几个好用的方法和注意事项

思维导图是一种非常有用的工具&#xff0c;它可以帮助我们整理和梳理思路&#xff0c;提高学习和工作效率。现在&#xff0c;越来越多的人开始使用在线工具来制作思维导图&#xff0c;因为它们不仅方便易用&#xff0c;而且可以随时随地进行编辑和共享。本文将介绍几个好用的在…

Unity3d:GameFramework解析:实体,对象池,资源管理,获取计数,引用计数,自动释放

基本概念 1.GF万物基于引用池IReference 2.ObjectBase : IReference类的m_Target持有unity中Mono&#xff0c;资源&#xff0c;GameObejct 3.AssetObject : ObjectBase类m_Target持有Assetbundle中的Asset&#xff0c;具有获取&#xff0c;引用两个计数管理释放 4.ResourceObj…

app.js和页面.js 实现全局传参

实现全局传参的几个步骤&#xff1a;1. 在页面.js文件中 输入 const appgetApp() 2.便可以在页面中引用app.js中的globalData中的数据。 注意点&#xff1a;app.js中是使用的是this.globalData (调用自身的数据&#xff09; 页面.js中使用的是app.globalData&#xff08;引用ap…

python连接数据库工具类

python连接MySQL数据库并封装增删改查方法&#xff1a; import pymysqlclass DBHelper:def __init__(self,host"127.0.0.1",port3306,userroot,passwdlfw123,dbweatherdb):self.connpymysql.connect(hosthost,portport,useruser,passwdpasswd,dbdb)self.cursorself.…

AUTOSAR从入门到精通-【应用篇】基于AUTOSAR的小车倒立摆平衡控制技术研究

目录 前言 AUTOSAR研究现状 平衡控制的研究现状 AUTOSAR架构分析及系统的动力学模型建立

Go语言入门记录:从基础到变量、函数、控制语句、包引用、interface、panic、go协程、Channel、sync下的waitGroup和Once等

程序入口文件的包名必须是main&#xff0c;但主程序文件所在文件夹名称不必须是main&#xff0c;即我们下图hello_world.go在main中&#xff0c;所以感觉package main写顺理成章&#xff0c;但是如果我们把main目录名称改成随便的名字如filename也是可以运行的&#xff0c;所以…