久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

.NET6創(chuàng)建Windows服務的實現(xiàn)步驟

瀏覽:32日期:2022-06-14 14:17:29

之前的文章已經(jīng)寫過了創(chuàng)建Windows服務。

C#創(chuàng)建Windows服務

不過之前使用的是.NET Framework創(chuàng)建的Windows服務。現(xiàn)在已經(jīng)2023年了,其中vs2022有新的方法去創(chuàng)建Windows服務,本次使用.NET6創(chuàng)建Windows服務。

1.選擇如圖所示,其中vs2022這樣的,vs2019不一樣,但是都是worker service

2.創(chuàng)建完成是這樣的

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.服務里面寫啟動,停止,以及執(zhí)行任務,Worker.cs中寫

里面的業(yè)務就是,檢測啟動,停止,每次執(zhí)行任務都輸出

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>/// 執(zhí)行任務/// </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},服務執(zhí)行!');}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.實際情況,我們肯定不是這么使用,但是這樣調(diào)試肯定是可以的,接下來,我們安裝此服務,變成Windows服務的樣子,首選先進行發(fā)布

8.執(zhí)行此命令

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

9.此時打開Windows服務,看到已經(jīng)有了

10.現(xiàn)在就和正常的服務一樣了,有開始,有停止,操作后,然后打開日志,可以看到服務的記錄。

到此這篇關于.NET6創(chuàng)建Windows服務的實現(xiàn)步驟的文章就介紹到這了,更多相關.NET6創(chuàng)建Windows服務內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: ASP.NET
主站蜘蛛池模板: 莱西市| 长兴县| 丁青县| 海原县| 南部县| 吐鲁番市| 克什克腾旗| 休宁县| 任丘市| 樟树市| 富裕县| 鄂伦春自治旗| 北流市| 商城县| 古交市| 长宁县| 新津县| 南康市| 乃东县| 虎林市| 双峰县| 庆阳市| 泰顺县| 孝感市| 中西区| 清徐县| 嘉荫县| 南汇区| 庆元县| 兰考县| 华宁县| 镇安县| 辽宁省| 枣强县| 裕民县| 大丰市| 维西| 育儿| 安龙县| 威远县| 贵定县|