.NET6创建Windows服务的实现步骤

2023-12-08 0 405

之前的文章已经写过了创建Windows服务。

C#创建Windows服务

不过之前使用的是.NET Framework创建的Windows服务。现在已经2023年了,其中vs2022有新的方法去创建Windows服务,本次使用.NET6创建Windows服务

1.选择如图所示,其中vs2022这样的,vs2019不一样,但是都是worker service

.NET6创建Windows服务的实现步骤

2.创建完成是这样的

.NET6创建Windows服务的实现步骤

3.安装Microsoft.Extensions.Hosting.WindowsServices

这里注意版本,选择的是net6,好像只能安装6版本的。

nuget里面安装

.NET6创建Windows服务的实现步骤

.NET6创建Windows服务的实现步骤

4.服务命名,Program.cs文件

namespace WorkerServiceDemo
{
public class Program
{
public static void Main(string[] args)
{
IHost host = Host.CreateDefaultBuilder(args)
.UseWindowsService(options =>
{
//给服务命名,在Windows服务中的会显示名字
options.ServiceName = \”NET6故里2130\”;
})
.ConfigureServices(services =>
{
services.AddHostedService<Worker>();
})
.Build();
host.Run();
}
}
}

5.服务里面写启动,停止,以及执行任务,Worker.cs中写

里面的业务就是,检测启动,停止,每次执行任务都输出

namespace WorkerServiceDemo
{
public class Worker : BackgroundService
{
private readonly ILogger<Worker> _logger;
private readonly string filePath = \”D:\\\\Service1.txt\”;
public Worker(ILogger<Worker> logger)
{
_logger = logger;
}
/// <summary>
/// 执行任务
/// </summary>
/// <param name=\”stoppingToken\”></param>
/// <returns></returns>
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
_logger.LogInformation(\”Worker running at: {time}\”, DateTimeOffset.Now);
using (FileStream stream = new FileStream(filePath, FileMode.Append))
using (StreamWriter writer = new StreamWriter(stream))
{
writer.WriteLine($\”{DateTimeOffset.Now},服务执行!\”);
}
await Task.Delay(1000, stoppingToken);
}
}
/// <summary>
/// 服务启动
/// </summary>
/// <param name=\”cancellationToken\”></param>
/// <returns></returns>
public override Task StartAsync(CancellationToken cancellationToken)
{
using (FileStream stream = new FileStream(filePath, FileMode.Append))
using (StreamWriter writer = new StreamWriter(stream))
{
writer.WriteLine($\”{DateTime.Now},服务启动!\”);
}
return base.StartAsync(cancellationToken);
}
/// <summary>
/// 服务停止
/// </summary>
/// <param name=\”cancellationToken\”></param>
/// <returns></returns>
public override Task StopAsync(CancellationToken cancellationToken)
{
using (FileStream stream = new FileStream(filePath, FileMode.Append))
using (StreamWriter writer = new StreamWriter(stream))
{
writer.WriteLine($\”{DateTime.Now},服务停止!\”);
}
return base.StopAsync(cancellationToken);
}
}
}

6.效果

.NET6创建Windows服务的实现步骤

7.实际情况,我们肯定不是这么使用,但是这样调试肯定是可以的,接下来,我们安装此服务,变成Windows服务的样子,首选先进行发布

.NET6创建Windows服务的实现步骤

8.执行此命令

sc.exe create \”故里2130\” binpath=\”D:\\code\\WorkerService1\\WorkerServiceDemo\\bin\\Release\\net6.0\\publish\\WorkerServiceDemo.exe\”

.NET6创建Windows服务的实现步骤

9.此时打开Windows服务,看到已经有了

.NET6创建Windows服务的实现步骤

10.现在就和正常的服务一样了,有开始,有停止,操作后,然后打开日志,可以看到服务的记录。

.NET6创建Windows服务的实现步骤

到此这篇关于.NET6创建Windows服务的实现步骤的文章就介绍到这了,更多相关.NET6创建Windows服务内容请搜索悠久资源网以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源网!

您可能感兴趣的文章:

  • .NET Core使用Topshelf方式创建Windows服务的全过程记录
  • 使用.NET Core3.0创建一个Windows服务的方法
  • 用.NET创建Windows服务的方法

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 ASP.NET .NET6创建Windows服务的实现步骤 https://www.u-9.cn/biancheng/aspnet/128329.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务