1、创建Worker Service项目
选择“创建新项目”,选择创建模板“Worker Service”,点击“下一步”,填写项目名称和选择项目存储位置,名称我命名“MyTestWokerService”,存储位置为“D:\4、WorkSpace\1==VisualStudio==”,
框架选择“.NET 6.0”,由于创建的本级Windows服务,所以不用启动Docker。直接点击“创建”。创建完成后的目录结构如图。
2、项目目录介绍
Program.cs是一个项目的总入口,该类的左右包括:
- 创建默认 IHostBuilder。
- 调用 ConfigureServices 以使用 AddHostedService 将 Worker 类添加为托管服务。
- 从生成器生成 IHost。
- 在运行应用的 host 实例上调用 Run。
Worker.cs是 BackgroundService 的子类,用于实现 IHostedService。 BackgroundService 是一个 abstract class,需要子类来实现 BackgroundService.ExecuteAsync(CancellationToken)。 在模板实现中,ExecuteAsync 每秒循环一次,记录当前日期和时间,直到进程收到取消信号。ILogger是默认加入的一个日志应用。
appsettings.json:项目运行时的公共配置。
appsettings.Development.json:开发环境的配置。
3、添加NuGet 包
为了与 .NET IHostedService 实现中的本机 Windows 服务互操作,需要安装 “Microsoft.Extensions.Hosting.WindowsServices NuGet” 包。安装方法为:右键点击项目,选择“管理 NuGet 程序包(N)...”,打开NuGet包管理器,在浏览中搜索“Microsoft.Extensions.Hosting.WindowsServices”,然后安装它。