文章詳情頁
.NET6創建Windows服務的實現步驟
瀏覽:35日期:2022-06-14 14:17:29
之前的文章已經寫過了創建Windows服務。
C#創建Windows服務
不過之前使用的是.NET Framework創建的Windows服務。現在已經2023年了,其中vs2022有新的方法去創建Windows服務,本次使用.NET6創建Windows服務。
1.選擇如圖所示,其中vs2022這樣的,vs2019不一樣,但是都是worker service
2.創建完成是這樣的
3.安裝Microsoft.Extensions.Hosting.WindowsServices
這里注意版本,選擇的是net6,好像只能安裝6版本的。
nuget里面安裝
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.效果
7.實際情況,我們肯定不是這么使用,但是這樣調試肯定是可以的,接下來,我們安裝此服務,變成Windows服務的樣子,首選先進行發布
8.執行此命令
sc.exe create '故里2130' binpath='D:\code\WorkerService1\WorkerServiceDemo\bin\Release\net6.0\publish\WorkerServiceDemo.exe'9.此時打開Windows服務,看到已經有了
10.現在就和正常的服務一樣了,有開始,有停止,操作后,然后打開日志,可以看到服務的記錄。
到此這篇關于.NET6創建Windows服務的實現步驟的文章就介紹到這了,更多相關.NET6創建Windows服務內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
標簽:
ASP.NET
排行榜
