.netCore windows服务
首先创建项目Worker Service
然后引用包Microsoft.Extensions.Hosting.WindowsServices
修改program项
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中进行逻辑的实现
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中使用依赖注入需要将所有的服务进行注册

浙公网安备 33010602011771号