C#/.NET基于Topshelf创建Windows服务程序及服务的安装和卸载(极速,简洁)

C#开发 作者: Rector 409 次阅读 · 读完约需 5 分钟 2 评论 收藏本文

郑重申明:本文未经许可,禁止任何形式转载

文章目录

C#/.NET基于Topshelf创建Windows服务的系列文章目录:

1.C#/.NET基于Topshelf创建Windows服务程序及服务的安装和卸载 (1)
2.在C#/.NET应用程序开发中创建一个基于Topshelf的应用程序守护进程(服务) (2)
3.C#/.NET基于Topshelf创建Windows服务的守护程序作为服务启动的客户端桌面程序不显示UI界面的问题分析和解决方案 (3)

前言

对于使用Windows操作系统的人来说,Windows Service(Windows服务)应该不会陌生。在Windows操作系统中,我们可以在”运行”窗口中运行service.msc

即可打开一个查看Windows服务的窗口,如图:

Windows服务基本都是一些后台运行的服务进程,没有UI界面,每个服务处理着各自独立的任务并且有专门的启动或者停止策略。所以,Windows服务在很多情况下会被用来者处理一些定时任务或者调度。

那么,对于.NET的开发者来说,可不可以自己创建Windows服务呢,如何使用C#创建Windows服务呢?

本文就为大家分享一种基于Topshelf创建的Windows服务的方法。

创建Topshelf服务项目

首先打开Visual Studio(本文使用的是Visual Studio 2019),打开新建项目的对话框,选择.NET Framework的控制台应用程序(Console App(.NET Framework)),如图:

注:只可选择控制台应用程序

点击”下一步”,在项目名称中输入TopshelfDemoService,.NET Framework 选择4.6.2,其中选项根据自己情况填写即可,最后点击”创建”按钮。

安装Topshelf组件

TopshelfDemoService项目中,打开Nuget包管理工具,搜索Topshelf,在搜索结果中选中Topshelf,点击”安装”,如图:

编写Topshelf服务的示例程序代码

Topshelf组件安装完成后,我们就可以开始编写服务的示例代码了。

首先,创建一个名为HealthMonitorService.cs的类(其作用假设为定时监控某个系统的运行健康状况),在其中分别创建方法:Start()Stop()以及一个定时器,让定时器定时执行检查系统健康状况的任务(这里模拟的每秒向控制台输出一条文本信息),完整的代码如下:

Topshelf配置参数说明

1.设置服务主机使用HostFactory.Run()来创建并运行一个Topshelft服务。
2.设置Topshelf使用类型HealthMonitorService作为服务类。
3.配置如何创建一个服务的实例,这里采用的是使用关键字new来实例化一个HealthMonitorService对象,你也可以使用IoCp容器来实例化服务对象。
4.设置当服务启动时执行的操作。
5.设置当服务停止时执行的操作。
6.设置将服务以本地系统身份运行。
7.启动恢复服务模式(当服务意外停止后自动恢复)。
8.设置第一次自动恢复服务的延迟时间为3分钟。
9.设置Topshelf服务在Windows服务中的描述信息。
10.设置Topshelf服务在Windows服务中的显示名称。
11.设置Topshelf服务在Windows服务中的服务名称。
12.设置Topshelf服务随Windows启动时自动运行(延迟)。
13.设置服务的退出代码。

示例代码托管和下载

本示例代码托管地址(github):示例代码下载地址

阅读了该文章的人还浏览了...

本文永久链接码友网 » C#/.NET基于Topshelf创建Windows服务程序及服务的安装和卸载(极速,简洁)

发布于: 2019-04-09 17:39:16
分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册

热门评论

Wahitler (3天前)

这个不支持.Net Core
回复 赞(0)
  • Topshelf是支持.NET Core的

    Rector · 3天前 赞(0)

json001 (2月前)

很好,很实用,也许可以在下一个项目中试试
回复 赞(1)
  • Topshelf开发和安装比.NET内置的Windows服务简洁许多,值得一试

    Rector · 2月前 赞(0)