.net 5 windows 系统服务 workserver

news/2023/12/1 10:38:46

workserver是一种专门用来运行耗时服务所提供的一种项目模板

我们可以这样创建

完成后,安装nuget包 (一个是windows的系统服务,一个是linux的系统服务)

Install-Package Microsoft.Extensions.Hosting.WindowsServices
Install-Package Microsoft.Extensions.Hosting.Systemd

最后,我们的代码如下

Program

    public class Program{public static void Main(string[] args){CreateHostBuilder(args).Build().Run();}public static IHostBuilder CreateHostBuilder(string[] args) =>Host.CreateDefaultBuilder(args).UseWindowsService().UseSystemd().ConfigureServices((hostContext, services) =>{services.AddHostedService<Worker>();});}

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}", DateTime.Now);Log($"Worker running at: {DateTime.Now}");await Task.Delay(1000, stoppingToken);}}private void Log(string data){using (StreamWriter sw = new StreamWriter("log.txt", true)){sw.WriteLine(data);}}}

直接运行 

 部署为服务运行

又增加两个bat脚本

install.bat

set current_path=%~dp0
sc create WorkerServiceDemo binPath= %current_path%WorkerServiceDemo.exe
sc config WorkerServiceDemo start= auto
sc start WorkerServiceDemo

 uninstall.bat

sc stop WorkerServiceDemo
sc delete WorkerServiceDemo

然后,管理员方式执行 install.bat 进行安装启动服务。

使用  uninstall.bat 来卸载服务 。

执行服务后, 在系统服务里就有了我们的服务

 

 日志也是正常输出的。

2022年3月31日

最近发现一个bug,就是后台服务的时候,环境地址是有问题的

建议使用以下方式 避免

Environment.CurrentDirectory = AppDomain.CurrentDomain.BaseDirectory;

另外 .NET Worker Service 如何优雅退出

依赖注入以下接口
IHostApplicationLifetime hostApplicationLifetime然后主动调用 
this.hostApplicationLifetime.StopApplication();


http://www.ppmy.cn/news/220343.html

相关文章

如何在 JavaScript 中创建自定义警告框

本文将介绍如何使用 jQuery UI、SweetAlert2 和自定义警报功能在 JavaScript 中创建自定义警报框。 使用 jQuery UI 创建自定义警告框 我们可以使用 jQuery UI 来模仿 JavaScript 本机 alert() 函数的功能。 尽管 jQuery UI 有很多 API&#xff0c;您可以使用它的 dialog() AP…

如何在企业中培养平台工程文化?

平台工程是一种新兴的技术方法&#xff0c;可以加速应用程序的交付和产生商业价值的速度。平台工程通过提供具有自动化基础设施操作的自助服务能力&#xff0c;改善开发者的体验与生产力&#xff0c;同时降低操作的复杂性&#xff0c;并缓解了开发过程中的摩擦。 当然&#…

ELK+FileBeat日志分析系统

一、 ELK日志分析系统概述 1、ELK简介 ELK是三个开源软件的缩写&#xff0c;分别表示&#xff1a;Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat&#xff0c;它是一个轻量级的日志收集处理工具(Agent)&#xff0c;Filebeat占用资源少&#xff0c…

PCL升级到1.12.0时遇到的问题

1.engine库找不到&#xff1a;engine/core no such file or directory 解决方法&#xff1a;设置软连接后重新编译 sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen sudo ln -s /usr/include/eigen3/unsupported /usr/include/unsupported 2.plus is not a member of…

ChatGPT-4 表现不佳(变笨)?开发者解释原因并承认存在不稳定性

最近&#xff0c;OpenAI 开发的大模型 GPT-4 出现了一些问题&#xff0c;被质疑是否变笨了。根据 Hacker News 上的一篇帖子&#xff0c;发帖人称 GPT-4 生成的代码错误更多了&#xff0c;给出的答案不再有深度了。这个帖子引发了许多人对 GPT-4 的怀疑和不信任。 然而&#xf…

处理机和处理器的区别

一、指代不同 1、处理机&#xff1a;是处理计算机系统中存储程序和数据&#xff0c;并按照程序规定的步骤执行指令的部件。 2、处理器&#xff1a;作为计算机系统的运算和控制核心&#xff0c;是信息处理、程序运行的最终执行单元。 二、操作方式不同 1、处理机&#xff1a;首…

几种intel CPU性能对比

测试算法 分解质因数&#xff08;10210825876492973539&#xff09;。 结果 CPU型号 核心 主频 主机 操作系统 OS 位数&#xff08;b&#xff09; JVM 耗时&#xff08;s&#xff09; I5 双核四线程 2.5GHz MAC BOOK PRO MAC OS X 64 1.8&#xff08;64b&#x…

天玑9200和a15对比 天玑9200和a15处理器哪个强

1、制程工艺 A15工艺为5nm制程工艺的增强版。天玑9200的工艺为台积电4nm。 我用的手机就是活动时入手的便宜了好几百太实惠了 http://shouji.adiannao.cn/7 2、CPU架构及GPU A15的架构为2个核心Avalanche&#xff0c;频率3223MHz&#xff0c;4个核心Blizzard。天玑9200架构搭载…

AMD处理器与INTEL的区别

AMD处理器与INTEL的区别如下所示&#xff1a; 一、价格不一样 价格上&#xff0c;同主频的AMD与Intel相比&#xff0c;前者价格只是后者的一半左右&#xff1b;对AMD来说&#xff0c;其最受人欢迎的地方&#xff0c;就是它良好的超频性能和低廉的价格&#xff0c;这是它目前占…

苹果发布的 M1 处理器和英特尔 AMD 对比有哪些优点和不足?

11月11日&#xff0c;苹果发布了全新Mac产品线&#xff0c;包括MacBook Air、13英寸MacBook Pro以及Mac mini&#xff0c;三款新品全部搭载了苹果自研的M1处理器。苹果将这颗基于ARM架构的首款自研处理器命名为M1&#xff0c;而非A14X&#xff0c;想必苹果对这颗“转型之作”寄…

CPU的性能对比

笔记本CPU之前的性能对比 下面的分数都是根据PerformanceTest测试的出来的结果&#xff0c;现在的笔记本CPU有很多种&#xff0c;你在购买笔记本的时候只看到CPU的型号&#xff0c;而且现在的CPU型号太多而且命名方式也很乱&#xff0c;搞的我们根本不知道不知道不同CPU性能差距…

AMD intel CPU 型号对比

英特尔公司的主要 CPU 系列型号有&#xff1a; Pentium Pentium Pro Pentium II Pentium III Pentium 4 Pentium 4EE Pentium-m Celeron Celeron II Celeron III Celeron IV Celeron D Xeon 等等 而 AMD 公司的主要 CPU 系列型号有&#xff1a; K5 K6 K6-2 Duron Athlon XP Sem…

cpu和处理器有什么区别

CPU(Central Processing Unit)是中央处理器的缩写&#xff0c;是计算机系统中最重要的部件之一&#xff0c;负责执行程序的指令并处理数据。处理器是指能够执行运算和控制操作的芯片&#xff0c;是计算机系统中最核心的部件之一&#xff0c;包括了CPU和其他辅助芯片&#xff0c…

web3到底是什么?只是一场永远醒不来的梦

Hello大家好&#xff0c;我是ClonBrowser鱼鱼。 过去&#xff0c;我一直与大家分享Facebook运营和广告方面的干货&#xff0c;但今天我想和大家聊聊一个更加炙手可热的话题——Web3。 近年来&#xff0c;Web3成为了互联网行业的热门关键词&#xff0c;被各大媒体和技术界热议…

深入理解一下Python中的面向对象编程

Part1 如何面向“对象” 网上关于Java和**C**的面向对象编程相关介绍的博客文章已经很多了&#xff0c;那我为什么还写呢&#xff1f;因为&#xff0c;人生苦短&#xff0c;刚好我是学Python的... 今天&#xff0c;我们就来走进面向对象编程的理想国——深入理解一下Python中…

智能AI客服系统- 企业AI知识库

我们都使用过ChatGPT&#xff0c;也能感受得到他的大模型能力。但是&#xff0c;它并不能知道我们企业或个人的私有知识信息。现在&#xff0c;唯一客服系统已经搭配了智能知识库AI&#xff0c;基于ChatGPT和私有数据构建智能知识库&#xff0c;智能辅助客服回复用户消息。可以…

硬件视频会议设备在与云视频会议对接时,如何提高利用率

跨区域合作是企业办公的常态&#xff0c;企业需要为这类办公模式匹配一个很好的解决方案。腾讯会议连接器让会议室连接方式更为简单快捷&#xff0c;同时会议设备的会议能力得到提高。即便是传统硬件视频会议系统也是可以使用的&#xff0c;利用率最大化。在云端进行远程协作。…

视频会议技术发展路线分析之SVC

视频算法架构&#xff1a;AVC转向SVC成为主流趋势 SVC技术是国际联合视频组在2007年推出的标准视频编码技术&#xff0c;又称为分层编码技术&#xff0c;于2011年开始在视频会议领域商用。SVC提供了一种适应性更强的视频图像压缩和交换传输方式&#xff0c;中央处理器MCU无需对…

BYOD与视频会议

Bring Your Own Device( BYOD) 指携带自己的设备办公&#xff0c;这些设备包括个人电脑、手机、平板等。现在更多的情况指手机或平板这样的移动智能终端设备。 BYOD对现有视频会议的改变。 首先 &#xff0c;基于智能手机和平板电脑的视频会议的传输通道往往是wifi或设3G/4G&a…
最新文章