.netCore windows服务

首先创建项目Worker Service

然后引用包Microsoft.Extensions.Hosting.WindowsServices

修改program项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public static IHostBuilder CreateHostBuilder(string[] args)
       {
           var host = Host.CreateDefaultBuilder(args);
 
           //判断当前系统是否是windows
           if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
           {
               host.UseWindowsService();
           }
 
              host.ConfigureServices((hostContext, services) =>
               {
                   //后台服务
                   services.AddHostedService<Worker>();
               });
 
           return host;
       }

在worker的ExecuteAsync中进行逻辑的实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Worker : BackgroundService
    {
        private readonly ILogger<Worker> _logger;
 
        public Worker(ILogger<Worker> logger)
        {
            _logger = logger;
        }
 
        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            Timer timer = new Timer(x => {
                File.AppendAllText(@"D:\Quartz.txt","启动服务");
            },null,1,3*10);
        }
    }

1:表示开始服务之后多久使用计时器

3*10:表示每隔多少秒调用一次

然后将服务发布

   发布之后打开cmd 使用sc 对服务进行操作

  例子:sc create MyCoreService binPath= D:\study\大实训\项目二\park_wu\Myworker\bin\Release\net5.0\publish\Myworker.exe DisplayName= MyFtService

重要:

如果想在worker中使用依赖注入需要将所有的服务进行注册

posted @   电器小君子  阅读(213)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示