使用.NET Core3.0创建一个Windows服务的方法
使用.NET Core 3.0 创建 Windows 服务的方法 .NET Core 3.0 中引入了一种名为 Worker Service 的新型应用程序模板,该模板旨在为您在 .NET Core 中编写长时间运行的服务提供一个起点。在本文中,我们将介绍使用.NET Core 3.0 创建一个 Windows 服务的方法,并将其作为 Windows 服务运行。 创建 Worker 在 Visual Studio 中创建 Worker,可以使用 dotnet new worker 命令创建 Worker。在命令行中输入以下命令,创建一个新的 Worker 项目: dotnet new worker 作为 Windows 服务运行 为了作为 Windows 服务运行,我们需要我们的 worker 监听来自 ServiceBase 的启动停止信号,该类型将 Windows 服务系统暴露给 .NET 应用程序。要做到这一点,我们需要添加 Microsoft.Extensions.Hosting.WindowsServices NuGet 包,并在 Program.cs 的 HostBuilder 中添加对 UseServiceBaseLifetime 的调用: public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .UseServiceBaseLifetime() .ConfigureServices(services => { services.AddHostedService<Worker>(); }); } 这个方法做了两件事。它检查应用程序是否真正的作为 Windows 服务运行,如果不是,那么它什么都不做,这使得这个方法很安全,当本地运行或作为 Windows 服务运行时。它将配置 host 使用 ServiceBaseLifetime。 ServiceBaseLifetime 与 ServiceBase 一起使用,以帮助控制作为 Windows 服务运行时应用程序的生命周期。 安装 Worker 一旦我们的 worker 使用 ServiceBaseLifetime,我们就需要安装它:让我们发布应用程序。如果我们立刻安装了 Windows 服务,这意味着只要服务运行,exe 就会被锁定。发布这一步是个很好的方法,以确保我需要运行服务的所有文件都在一个位置,并准备好安装。 dotnet publish -o c:\code\workerpub 然后我们就可以在命令行中使用 sc 命令来安装: sc create workertest binPath=c:\code\workerpub\WorkerTest.exe 日志记录 日志记录系统有 Event Log 的提供程序,可以将日志消息直接发送到 Windows 事件日志。安装 Microsoft.Extensions.Logging.EventLog 并修改 Program.cs : public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureLogging(loggerFactory => { loggerFactory.AddEventLog(); }) .UseServiceBaseLifetime() .ConfigureServices(services => { services.AddHostedService<Worker>(); }); 总结 使用.NET Core 3.0 创建 Windows 服务的方法主要包括创建 Worker、作为 Windows 服务运行和安装 Worker 三个步骤。通过使用 Worker Service 模板和 ServiceBaseLifetime,我们可以轻松地创建和安装 Windows 服务,并使用 Event Log 提供程序记录日志消息。



























- 粉丝: 12
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 机械制造企业项目管理应用分析.docx
- XXXX道路整治工程施工总进度具体计划横道图、网络图、总平面图.doc
- 电子商务网站建设中数据库安全隐患与策略分析.docx
- 服务器存储网络设备巡检报告.docx
- 单片机交通灯设计方案和实现.doc
- 单片机原理及应用技术试卷.doc
- 关于高校网络和信息安全管理与技术分析.docx
- 2012落索坡小学教育信息化建设方案.doc
- 输电线路工程项目管理实施对策分析.docx
- 淘宝网站的设计与应用.doc
- 网络教学下的数学课堂教学.docx
- 探索互联网+模式下提升档案社会服务的有效提升.docx
- spring-boot-seckill-C++资源
- 大数据时代下的物联网进程-专访中国工程院院士、中国互联网协会理事长邬贺铨.docx
- 西北工业大学入学测试机考模拟题及答案专升本计算机基础.doc
- 大数据时代基于云会计的库存管理模式构建.docx


