欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2023年06月19日 10:51:26   作者:故里2130  
本文主要介紹了.NET6創(chuàng)建Windows服務的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

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

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

 不過之前使用的是.NET Framework創(chuàng)建的Windows服務?,F(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 解析Asp.net,C# 純數(shù)字加密解密字符串的應用

    解析Asp.net,C# 純數(shù)字加密解密字符串的應用

    本篇文章是對Asp.net,C# 純數(shù)字加密解密字符串的應用進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • 如何取得Repeater控件選擇的項目及注意事項

    如何取得Repeater控件選擇的項目及注意事項

    Repeater控件,每個item前有一個CheckBox,把選擇的item列顯出來,有兩個地方需要注意的,就是CheckBox與Label,這個Label是隨你需要獲取的內(nèi)容而變化喔。如你想獲取Nickname,那你需要把綁定的的內(nèi)容放在Label上
    2013-01-01
  • C#可以減少或不使用switch有什么方法

    C#可以減少或不使用switch有什么方法

    減少或不使用switch,大家有什么好的方法,使用工廠方法來處理,可以創(chuàng)建一個工廠接口,然后每個方法設計為一個工廠類,并實現(xiàn)工廠接口,感興趣的朋友可以了解下
    2013-03-03
  • .Net 如何限制用戶登錄的方法

    .Net 如何限制用戶登錄的方法

    這篇文章主要介紹了.Net 如何限制用戶登錄的方法,有需要的朋友可以參考一下
    2013-12-12
  • .NET Core3.1發(fā)布(翻譯)

    .NET Core3.1發(fā)布(翻譯)

    這篇文章主要介紹了.NET Core3.1發(fā)布(翻譯),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • asp.net 數(shù)據(jù)庫的連接和datatable類

    asp.net 數(shù)據(jù)庫的連接和datatable類

    asp.net下數(shù)據(jù)庫的連接與數(shù)據(jù)庫datatable類實現(xiàn)代碼。
    2009-05-05
  • ASP.NET返回上一頁面的實現(xiàn)代碼

    ASP.NET返回上一頁面的實現(xiàn)代碼

    今天用ASP.NET做一個類似淘寶中的訂單管理系統(tǒng),遇到的問題:主界面通過一個超鏈接跳轉(zhuǎn)到子界面后,試了好長時間還是無法從子界面返回主界面。
    2011-04-04
  • ASP.Net 圖片存入數(shù)據(jù)庫的實現(xiàn)代碼

    ASP.Net 圖片存入數(shù)據(jù)庫的實現(xiàn)代碼

    在很多時候,我們有這樣的需求:把圖片存入到數(shù)據(jù)庫當中。在一些應用程序中,我們可能有一些敏感的資料,由于存儲在文件系統(tǒng)(file system)中的東西,將很容易被某些用戶盜取,所以這些數(shù)據(jù)不能存放在文件系統(tǒng)中。
    2008-11-11
  • ASP.NET中AJAX的異步加載(Demo演示)

    ASP.NET中AJAX的異步加載(Demo演示)

    這篇文章主要介紹了ASP.NET中AJAX的異步加載(Demo演示),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • Repeater控件實現(xiàn)編輯、更新、刪除等操作示例代碼

    Repeater控件實現(xiàn)編輯、更新、刪除等操作示例代碼

    如何在Repeater控件中實現(xiàn)像GridView控件一樣的編輯、更新、刪除功能?下面有個不錯的示例,感興趣的朋友可以參考下,希望對大家有所幫助
    2014-01-01

最新評論