亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

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

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

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

3.安裝Microsoft.Extensions.Hosting.WindowsServices

這里注意版本,選擇的是net6,好像只能安裝6版本的。

 nuget里面安裝

4.服務(wù)命名,Program.cs文件

namespace WorkerServiceDemo
{
    public class Program
    {
        public static void Main(string[] args)
        {
            IHost host = Host.CreateDefaultBuilder(args)
                 .UseWindowsService(options =>
                 {
                     //給服務(wù)命名,在Windows服務(wù)中的會(huì)顯示名字
                     options.ServiceName = "NET6故里2130";
                 })
                .ConfigureServices(services =>
                {
                    services.AddHostedService<Worker>();
                })
                .Build();
            host.Run();
        }
    }
}

5.服務(wù)里面寫啟動(dòng),停止,以及執(zhí)行任務(wù),Worker.cs中寫

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

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í)行任務(wù)
        /// </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},服務(wù)執(zhí)行!");
                }
                await Task.Delay(1000, stoppingToken);
            }
        }
        /// <summary>
        /// 服務(wù)啟動(dòng)
        /// </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},服務(wù)啟動(dòng)!");
            }
            return base.StartAsync(cancellationToken);
        }
        /// <summary>
        /// 服務(wù)停止
        /// </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},服務(wù)停止!");
            }
            return base.StopAsync(cancellationToken);
        }
    }
}

6.效果

7.實(shí)際情況,我們肯定不是這么使用,但是這樣調(diào)試肯定是可以的,接下來,我們安裝此服務(wù),變成Windows服務(wù)的樣子,首選先進(jìn)行發(fā)布

8.執(zhí)行此命令

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

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

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

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

相關(guān)文章

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

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

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

    如何取得Repeater控件選擇的項(xiàng)目及注意事項(xiàng)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論