使用.Net Core 2.2创建windows服务
Posted xyfy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用.Net Core 2.2创建windows服务相关的知识,希望对你有一定的参考价值。
使用.Net Core 2.2创建windows服务
我的环境
- win 10 home
- Visual Studio 2019 v16.1.3
- 安装有.net core 2.2
创建项目
编辑项目文件
在 PropertyGroup 配置节 加入属性 <RuntimeIdentifier>win-x64</RuntimeIdentifier>
保存后,重新生成项目
在项目文件夹下,会有文件夹 bin\\Debug\\netcoreapp2.2\\win-x64,里面包含了exe文件。
测试服务类的编写
安装nuget包
Install-Package System.ServiceProcess.ServiceController -Version 4.5.0
修改启动类 Programe.cs
using System;
using System.IO;
using System.ServiceProcess;
namespace TestService
class Program
static void Main(string[] args)
using (var service = new TestSevice())
ServiceBase.Run(service);
internal class TestSevice : ServiceBase
public TestSevice()
ServiceName = "TestService";
protected override void OnStart(string[] args)
string filename = CheckFileExists();
File.AppendAllText(filename, $"DateTime.Now started.Environment.NewLine");
protected override void OnStop()
string filename = CheckFileExists();
File.AppendAllText(filename, $"DateTime.Now stopped.Environment.NewLine");
private static string CheckFileExists()
string filename = System.AppDomain.CurrentDomain.BaseDirectory + @"\\MyService.txt";
if (!File.Exists(filename))
File.Create(filename);
return filename;
服务安装、启动、卸载
安装
sc create testservice binpath=D:\\source\\repos\\TestConsoleService\\TestService\\bin\\Debug\\netcoreapp2.2\\win-x64\\TestService.exe
卸载
sc delete testservice
启动
不能通过命令行启动服务
sc start testservice
只能去服务管理器使用鼠标启动服务,具体原因暂未研究
反复启动停止,然后去exe所在目录下查看MyService.txt的内容,确认服务的启动。
参考文档
- Running a .NET Core Generic Host App as a Windows Service
- Create windows service using .Net Core (Console application)
以上是关于使用.Net Core 2.2创建windows服务的主要内容,如果未能解决你的问题,请参考以下文章
这是如何使用 Entity Framework Core 和 ASP.NET Core MVC 2.2+ 和 3.0 创建数据传输对象 (DTO)
ASP.NET Core 2.2 WebAPI 405 方法不允许
如何将 .NET Core 2.2 Web API 迁移到 .NET Core 3.0?