.NET Core3.0-Worker Services
.NET CORE 3.0新增了Worker Services的新项目模板,可以编写长时间运行的后台服务,并且能轻松的部署成windows服务或linux守护程序。
步骤:
1.创建项目:
创建成功后:
就只有2个类,与ASP.NET Core Web应用程序相比,Program类没什么改变 ,startup类消失了,并且把worker服务添加到DI container中。
worker类继承了BackgroundService
运行就可知道,每隔1秒打印一次
Windows服务部署
1 | 引用包 :Microsoft.Extensions.Hosting.WindowsServices -v3.0.0<br>然后在 program.cs加.UseWindowsService() |
然后我们再来发布项目:
第一步:
方法一:
发布在自己想要的位置
方法二:
打开命令,先找到项目:cd +项目路径
然后: dotnet publish -c Release -o 加发布的地址--》
1 | dotnet publish -c Release -o C:\WorkerPub\Release |
(主要,如果说找不到文件或者什么的,就是因为你没有先找到项目路径)
第二步:创建windows服务(使用sc.exe 工具)
1 | sc create 名称 binPath=可执行程序的路径 --》 |
1 | sc create TimingWorkService binPath=C:\WorkerPub\WorkerService1.exe |
成功之后,我们打开服务去查看:
打开命令:输入services.msc,可看真的成功了
查看服务状态
1 | sc query TimingWorkService |
STATE状态是STOPPED说明停止状态
然后我们开启服务
1 | sc start TimingWorkService |
STATE状态是START说明启动了,也可以查看一下
测试后,执行停止,删除
1 2 | sc stop TimingWorkService sc delete TimingWorkService |
执行成功后,服务里面也找不到了。找得到就说明没有成功
Linux守护程序运行 :
1.添加包:
1 | Microsoft.Extensions.Hosting.Systemd NuGet软件包 |
2. UseSystemd()加入到Program.cs
分类:
.Net Core
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统