使用.NET Core创建Windows服务详细步骤
#创建步骤
使用该方式创建,首先要确保你已经安装了.NET Core 3.0或以上版本 . 但是如果你想要在.NET Core 2.x项目中使用这个方式,应该是行不通的。
1、使用Visual Studio创建
打开Visual Studio,创建新项目,找到Worker Service模板。

2、使用命令行创建
dotnet new worker
#项目结构说明
创建出来的项目,包含两个主要文件。其中Program.cs文件是应用的启动“引导程序”。另外一个文件是worker.cs文件,在这个文件中,你可以编写你的服务逻辑。同时在依赖项的包中引入了Microsoft.Extensions.Hosting包。

#将应用转换成Window服务
当前项目可在linux下完美运行,但是还不能以服务的方式在windows上安装运行。
1、引入Microsoft.Extensions.Hosting.WindowsServices
为了将应用转换成Windows服务,我们需要使用如下命令引入一个包。
Install-Package Microsoft.Extensions.Hosting.WindowsServices

2、修改代码
需要修改Program.cs文件,添加UseWindowsService()方法的调用。
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args)
{
var host = Host.CreateDefaultBuilder(args);
//判断当前系统是否为windows
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
host.UseWindowsService();
}
return host.ConfigureServices((hostContext, services) =>
{
services.AddHostedService<Worker>();
});
}
}
代码中增加了对操作系统的判断,从而可以兼容windows和linux。
3、发布
使用Visual Studio发布:

使用命令行发布:
dotnet publish -r win-x64 -c Release
4、使用SC命令在windows上安装服务
sc create TestService BinPath=D:\dir\WindowsServiceExample.exe
也可以创建一个bat文件,用来安装windows服务,如下:
@echo off
@title 安装windows服务
@echo off
echo= 安装服务!
@echo off
@sc create worktest binPath= "%~dp0WorkerService1.exe"
echo= 启动服务!
@echo off
@sc start worktest
@echo off
echo= 配置服务!
@echo off
@sc config worktest start= AUTO
@echo off
echo= 成功安装、启动、配置服务!
@pause
将bat文件放到服务文件同目录,修改下服务名和exe名字即可双击运行安装。
SC其他操作服务的常用命令:
sc start TestService
sc stop TestService
sc delete TestService
使用.NET Core创建Windows服务详细步骤的更多相关文章
- 使用.NET Core创建Windows服务 - 使用.NET Core工作器方式
原文:Creating Windows Services In .NET Core – Part 3 – The ".NET Core Worker" Way 作者:Dotnet ...
- 使用.NET Core创建Windows服务(二) - 使用Topshelf方式
原文:Creating Windows Services In .NET Core – Part 2 – The "Topshelf" Way 作者:Dotnet Core Tut ...
- .NET Core 创建Windows服务
.NET Core 创建Windows服务 作者:高堂 原文地址:https://www.cnblogs.com/gaotang/p/10850564.html 写在前面 使用 TopShelf+Au ...
- 使用.NET Core创建Windows服务(一) - 使用官方推荐方式
原文:使用.NET Core创建Windows服务(一) - 使用官方推荐方式 原文:Creating Windows Services In .NET Core – Part 1 – The &qu ...
- 安装mongodb以及设置为windows服务 详细步骤
我的win7 32的,注意版本要正确! 一.下载mongodb压缩包:mongodb-win32-i386-2.6.9.zip() 二.在D盘新建文件夹mongodb,将压缩我的解压文件放进去(有一个 ...
- (后端)安装mongodb以及设置为windows服务 详细步骤(转)
1.在data文件夹下新建一个log文件夹,用于存放日志文件,在log文件夹下新建文件mongodb.log 2.在 D:\mongodb文件夹下新建文件mongo.config,并用记事本打开mon ...
- 使用.NET Core中创建Windows服务(一) - 使用官方推荐方式
原文:Creating Windows Services In .NET Core – Part 1 – The "Microsoft" Way 作者:Dotnet Core Tu ...
- C# windows服务:创建Windows服务(Windows Services)的一般步骤
C#创建Windows服务(Windows Services) Windows服务在Visual Studio 以前的版本中叫NT服务,在VS.net启用了新的名称.用Visual C# 创建Wind ...
- 使用.Net Core 2.2创建windows服务
使用.Net Core 2.2创建windows服务 我的环境 win 10 home Visual Studio 2019 v16.1.3 安装有.net core 2.2 创建项目 编辑项目文件 ...
随机推荐
- 软件工程与UML作业2
博客班级 https://edu.cnblogs.com/campus/fzzcxy/2018SE1 作业要求 https://edu.cnblogs.com/campus/fzzcxy/2018SE ...
- doeker部署zabbix
docker部署zabbix 我相信大家都已经会再物理机上跑zabbix并且监控了,那么有没有想过在docker中跑zabbix?下面咱们来看看如何在docker中搭建zabbix并且监控 部署环 ...
- 获取NX特征名称(无时间戳)
NX获取特征名称使用UF_MODL_ask_feat_name这个接口,接口说明里有一段话: Returns a character string containing the feature typ ...
- CSS3 新特性总结
1.边框 border-radius: 1-4 length|% / 1-4 length|%; 每个半径的四个值的顺序是:左上角,右上角,右下角,左下角.若省略左下角,和右上角相同,省略右下角,左上 ...
- linux 上部署 YApi 可视化接口管理平台
linux 上部署 YApi 可视化接口管理平台: YApi 是一个高效.易用.功能强大的可视化接口管理平台,官方地址 : http://yapi.demo.qunar.com/ 环境要求 nodej ...
- linux_基础调优
1. 配置授时服务,使用阿里云的授时服务 echo -e "# update time\n*/5 * * * * /usr/sbin/ntpdate time1.aliyun.com &am ...
- 使用Cadence绘制PCB流程
转载:https://blog.csdn.net/hailin0716/article/details/47169799 之前使用过cadence画过几块板子,一直没有做过整理.每次画图遇到问题时,都 ...
- 温湿度传感器DHT11程序示例
DHT11概述 HT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器. 它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性.传感器包括一个电阻式 ...
- tomcat:tomcat安装(在一台电脑上安装两个tomcat)
1.安装前的说明 (1)在安装第二个tomcat之前,我们要知道安装一台tomcat的时候需要在电脑上添加两个系统变量 然后在path中配置: (2)这个时候我们就要思考了,当安装第二台服务器的时候首 ...
- VSCode搭建golang环境
安装对应版本的Golang 略 VSCode安装对应 Go 插件 在应用商店安装即可:go VSCode安装 Go 工具: 在VSCode输入:Crtl + Shift + P 在弹出框输入:inst ...