当前位置: 首页 > news >正文

.net和jar包windows服务部署

一.NetCore

  1.创建启动脚本run_instal.bat,例如程序文件为ApiDoc.exe

set serviceName="Apidoc Web 01"
set serviceFilePath=%~dp0ApiDoc.exe
set serviceDescription="ApiDoc 动态接口服务 web 01"sc create %serviceName%  BinPath=%serviceFilePath%
sc config %serviceName%  start=auto  
sc description %serviceName%  %serviceDescription%
sc start  %serviceName%
pause

serviceName 服务名,如果多个单子可以有空格,但必须用""包起立

description 服务说明        BinPath 路径

%~dp0 当前bat文件路径        start=auto 开机自动启动        start: 启动服务

  2.卸载脚本run_unstall.bat

set serviceName="Apidoc Web 01"sc stop %serviceName% 
sc delete %serviceName% pause

windows服务只能以命令方式卸载,最后把bat文件和.exe文件放在同目录下

二.普通jar包

  1.下载WinSW,根据服务器的.net环境自行选择,此处使用WinSW-x64.exe

https://github.com/winsw/winsw/releases
https://github.com/winsw/winsw/tree/v2.12.0?tab=readme-ov-file

  2.将WinSW-x64.exe重命名为WinServerTest.exe,并拷贝到jar包同目录

  3.新建一个WinServerTest.xml的文件,编码格式为UTF-8,内容如下

<service><!-- ID of the service. It should be unique across the Windows system--><id>WinServerTest</id><!-- 服务名 --><name>WinServerTest</name><!-- 服务说明 --><description>This service is a service test WinServerTest</description><!-- 应启动的可执行文件的路径 --><executable>java</executable><!-- 当前路径的程序 --><arguments>-jar WinServerTest-1.jar</arguments> <!-- 服务启动模式 Automatic:自动 --><startmode>Automatic</startmode><!-- 日志位置,为当前路径logs文件夹下 --><logpath>logs</logpath></service>

  4.创建安装服务脚本install.bat

cd %~dp0
WinServerTest install
WinServerTest start
pause

  5.创建删除服务脚本uninstall.bat

cd %~dp0
WinServerTest stop
WinServerTest uninstall
pause

  6.最后的文件目录

三.

相关文章:

  • Netty应用(六) 之 异步 Channel
  • 【动态规划初识】整数划分
  • pytorch训练指标记录之tensoboard,wandb
  • 云原生:下一代应用的构建与运行方式
  • alist基本用法@文档阅读@挂载网盘@网盘webdav挂载
  • 9 scala的类继承及trait
  • 问题:由于环境因素或人为因素干扰,致使土地生态系统的结构和功能失调,引起() #学习方法#经验分享
  • C++ 设计模式之策略模式
  • 2024.02.15
  • 【C/C++ 11】贪吃蛇游戏
  • 【学网攻】 第(23)节 -- PPP协议
  • 【计算几何】给定一组点的多边形面积
  • 【算法】树状数组和线段树
  • OpenGL-ES 学习(4)---- OpenGL-ES 坐标体系
  • Spring Native 解放 JVM
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • 03Go 类型总结
  • CSS相对定位
  • HTTP中GET与POST的区别 99%的错误认识
  • java正则表式的使用
  • JS数组方法汇总
  • Laravel Telescope:优雅的应用调试工具
  • Map集合、散列表、红黑树介绍
  • mongodb--安装和初步使用教程
  • Netty 4.1 源代码学习:线程模型
  • Object.assign方法不能实现深复制
  • php中curl和soap方式请求服务超时问题
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • ViewService——一种保证客户端与服务端同步的方法
  • Windows Containers 大冒险: 容器网络
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 让你的分享飞起来——极光推出社会化分享组件
  • 如何设计一个微型分布式架构?
  • 世界上最简单的无等待算法(getAndIncrement)
  • 微信开放平台全网发布【失败】的几点排查方法
  • 智能合约开发环境搭建及Hello World合约
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • ​批处理文件中的errorlevel用法
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #ubuntu# #git# repository git config --global --add safe.directory
  • (9)STL算法之逆转旋转
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (算法)Game
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • .NET Micro Framework初体验
  • .net 流——流的类型体系简单介绍
  • .Net 应用中使用dot trace进行性能诊断
  • .net/c# memcached 获取所有缓存键(keys)
  • .NET开发人员必知的八个网站
  • .NET下的多线程编程—1-线程机制概述