iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >.NET Core使用Worker Service创建服务
  • 724
分享到

.NET Core使用Worker Service创建服务

2024-04-02 19:04:59 724人浏览 八月长安
摘要

需求来源 在几年前, 做的项目是依赖windows服务来支撑一些业务, 目前已经把技术栈全部由.net Framework 升级至 .net core x。 旧得需求大部分是,接入一

需求来源

在几年前, 做的项目是依赖windows服务来支撑一些业务, 目前已经把技术栈全部由.net Framework 升级至 .net core x。

旧得需求大部分是,接入一些第三方得硬件设备, 例如PLC、串口读卡器、tcp阅读器、各种硬件模块。
为了能够让任何开发语言接入无需重新实现, 所以使用Windows服务添加支持各类硬件api、对外使用MQTT.NET来进行协议开发。

版本更新

考虑到目前软件的更新,其中包括安装文件、SDK都是基于.Net Core, 所以使用Worker Service来创建服务, 该服务支持在Windows与linux运行。

创建WorkerService

创建完成后, 整个默认项目包含Program以及一个Worker示例, 配置的模式与ASP.net core相同。

    public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .UseWindowsService()
                .ConfigureServices((hostContext, services) =>
                {
                    services.AddHostedService<Worker>(); 
                });
    }

可以看到在配置服务中,AddHostedService添加了一个Worker, 类型约束IHostedService

关于Worker类的实现

public class Worker : BackgroundService
    {
        private readonly ILogger<Worker> _logger;

        public Worker(ILogger<Worker> logger)
        {
            _logger = logger;
        }

        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            while (!stoppingToken.IsCancellationRequested)
            {
                _logger.LogInfORMation("Worker running at: {time}", DateTimeOffset.Now);
                await Task.Delay(1000, stoppingToken);
            }
        }
    }
  • ExecuteAsync
    在服务启动时,会执行该方法,每秒钟输入当前时间

查看父类BackgroundService的实现,可以看到有支持重写的方法。

        public virtual void Dispose();
        public virtual Task StartAsync(CancellationToken cancellationToken);
        public virtual Task StopAsync(CancellationToken cancellationToken);

意思就是,我们可以在启动服务时候触发的逻辑以及暂停服务触发的逻辑都可以自行编写。

安装服务

发布之后,即可使用sc.exe 来安装/启动/暂停/卸载服务等。

  • 安装服务
    sc.exe create MyService binPath=C:\User\WorkerService.exe
  • 查询服务状态
    sc.exe query MyService
  • 启动服务
    sc.exe start MyService
  • 暂停服务
    sc.exe stop MyService
  • 卸载服务
    sc.exe delete MyService

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: .NET Core使用Worker Service创建服务

本文链接: https://www.lsjlt.com/news/139157.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • .NET Core使用Worker Service创建服务
    需求来源 在几年前, 做的项目是依赖Windows服务来支撑一些业务, 目前已经把技术栈全部由.NET Framework 升级至 .NET Core x。 旧得需求大部分是,接入一...
    99+
    2024-04-02
  • .NET Core如何使用Worker Service创建服务
    这篇文章主要介绍了.NET Core如何使用Worker Service创建服务,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。需求来源在几年前, 做的项目...
    99+
    2023-06-29
  • NET Core中的Worker Service是什么/怎么用
    本篇内容主要讲解“NET Core中的Worker Service是什么/怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“NET Core中的Worker Service是什么/怎么用”吧!...
    99+
    2023-06-09
  • .NET中Worker Service的使用方法
    这篇文章主要介绍了.NET中Worker Service的使用方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。请先完成以下准备工作,以便于您理解本文。1、下载并安装最新的 ...
    99+
    2023-06-15
  • .NET 中Worker Service的使用入门
    目录什么是 .NET Core Worker Service?§Worker Service 的一些例子Worker Service 模板提供了什么?§1. Program.cs§2...
    99+
    2024-04-02
  • 如何使用.NET Core创建exe应用程序
    今天小编给大家分享一下如何使用.NET Core创建exe应用程序的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。....
    99+
    2023-07-02
  • .NET Core使用Eureka实现服务注册
    首先先安装nuget组件: Steeltoe.Discovery.ClientCore 然后在ConfigureServices中进行注入 services.AddDiscovery...
    99+
    2024-04-02
  • .Net Core服务治理Consul使用服务发现
    先思考一些问题:它是做什么的、以及怎么使用它。带着这些问题往下走。 consul是做什么的 consul用于微服务下的服务治理。服务治理是什么?它包含但不限于:服务发现、服务配置、健...
    99+
    2024-04-02
  • Linux下使用Jenkins自动化构建.NET Core应用
    目录部署 Jenkins安装插件拉取镜像制作 Jenkinsfile 脚本构建流水线观察部署 Jenkins 请提前在 Linux 上安装 Docker,在 Linux 中,我们使用...
    99+
    2024-04-02
  • ASP.NET Core怎么使用EF创建模型
    这篇文章主要介绍“ASP.NET Core怎么使用EF创建模型”,在日常操作中,相信很多人在ASP.NET Core怎么使用EF创建模型问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ASP...
    99+
    2023-06-29
  • ASP.NET Core使用EF创建关系模型
    目录1.关系2.术语定义3.约定4.完全定义的关系5.无外键属性6.单个导航属性7.数据注释7.1ForeignKey7.2InverseProperty8.Fluent API8....
    99+
    2024-04-02
  • .Net Core中使用MongoDB搭建集群与项目实战
    目录安装MongoDBapt直接安装(方法1)apt仓库安装(方法2)方法1、2启动MongoDB通过二进制包安装(方法3)安装依赖deb安装MongoDBtgz安装MongoDB启...
    99+
    2024-04-02
  • Linux下怎么使用Jenkins自动化构建.NET Core应用
    本篇内容主要讲解“Linux下怎么使用Jenkins自动化构建.NET Core应用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux下怎么使用Jenkins自动化构建.NET&...
    99+
    2023-06-29
  • 【服务器】ASP.Net Core(C#)创建Web站点
    简单几步实现本地ASP.Net.Core web 站点结合cpolar内网穿透工具实现远程访问 1. 创建站点 *环境搭建,这边测试,使用.NET 6.0 SDK,可以点击跳转到官网下载,下载后安装即...
    99+
    2023-10-18
    服务器 asp.net c# http
  • C#中怎么创建一个Web Service服务
    本篇文章为大家展示了C#中怎么创建一个Web Service服务,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。为什么需要Web Service以前,分布式的应用程序逻辑需要使用分布式的对象模型,通过...
    99+
    2023-06-18
  • ASP.NET Core使用EF创建模型的方法
    这篇文章主要介绍“ASP.NET Core使用EF创建模型的方法”,在日常操作中,相信很多人在ASP.NET Core使用EF创建模型的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”A...
    99+
    2023-06-29
  • ASP.NET Core中如何使用EF创建模型
    本文小编为大家详细介绍“ASP.NET Core中如何使用EF创建模型”,内容详细,步骤清晰,细节处理妥当,希望这篇“ASP.NET Core中如何使用EF创建模型”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一...
    99+
    2023-06-29
  • 如何使用Phalanger创建组合.NET和PHP
    本篇文章为大家展示了如何使用Phalanger创建组合.NET和PHP,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Phalanger 是一种 PHP 语言编译器,也是针对 .NET 的 PHP 运...
    99+
    2023-06-17
  • ASP.NET Core怎么使用EF创建关系模型
    今天小编给大家分享一下ASP.NET Core怎么使用EF创建关系模型的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧...
    99+
    2023-06-29
  • .NET Core分布式任务调度ScheduleMaster怎么使用
    今天小编给大家分享一下.NET Core分布式任务调度ScheduleMaster怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作