C#如何编写Windows服务

起因

这两天在写一个定时任务,在公司项目中,使用的是.Net Framework 4.0. 便想着在.Net Core是不是可以编写Windows服务,果真是可以的(2020-09-01)

1. 在.Net Framework中可以用installutil服务进行注册和卸载

//注册服务
C:/Windows/Microsoft.NET/Framework/v4.0.30319/installutil -i E:/project/csharp/dotnetcore31/dotnet.core/qiufeng.service2/bin/Debug/qiufeng.service2.exe

//卸载服务
C:/Windows/Microsoft.NET/Framework/v4.0.30319/installutil  /u   E:/project/csharp/dotnetcore31/dotnet.core/qiufeng.service2/bin/Debug/qiufeng.service2.exe

//启动服务
net start  Service1

//关闭服务
net stop  Service1

2. 创建.Net Core控制台程序

在Nuget中,查找
   System.ServiceProcess.ServiceController 进行安装.然后添加新项目

   

用.Net Core编写Windows 服务

namespace CoreService
{
    partial class Service1 : ServiceBase
    {
        public Service1()
        {
            InitializeComponent();
        }

        protected override void OnStart(string[] args)
        {
             // TODO: 在此处添加代码以启动服务。
        }

        protected override void OnStop()
        {
            // TODO: 在此处添加代码以执行停止服务所需的关闭操作。
        }
    }
}
static void Main(string[] args)
{
    ServiceBase[] services = new ServiceBase[] 
    {
            new Service1() //可以增加多个服务
    };
    ServiceBase.Run(services);
}

3. .Net Core的windows服务注册和卸载

.Net Core中没有installutil工具.该怎么注册服务呢?

//使用管理员权限打开命令行工具,用powershell不可以,目前没发现哪里的问题 
//sc create  "xxx(服务名称)"   binpath=xxx(服务所在的绝对路径) 注册服务
sc create "qiufengservice" binpath=xxx    

//sc delete "xxx(服务名称)" 卸载服务
#sc delete "qiufengservice"

在.Net 5(应该是)中可以通过依赖注入(内部还是在ServiceBase继续封装)的使用,更简单的是使用中间件.

个人能力有限,如果您发现有什么不对,请私信我

如果您觉得对您有用的话,可以点个赞或者加个关注,欢迎大家一起进行技术交流

(0)

相关推荐

  • 怎么关闭windows安全警报

    随着网络的普及,电脑的使用量越来越多,遇到的问题也越来越多.有些是通过电脑电脑设置来解决的问题,而有些却不能.来举个例子:当我们新买的电脑在没有设置的情况,每次开机都会发出警报,你知道为什么吗?其实它 ...

  • 加快win7关机速度如何操作

    每一台电脑都是安装有一个系统的,win7就是一个被应用的非常广泛的系统.Win7是一个比较稳定的系统,所以很多人都会选择安装这个系统.但是人们在使用这个系统的时候,出现了关机速度慢的问题.关机的速度慢 ...

  • 怎么禁止系统自动更新(怎么永久关闭电脑自动更新)

    小编前段时间曾写过一个有关暂停Win10系统更新的教程传送门发现许多粉丝留言以及私信问如何永久关闭Windows系统更新,下面就以Win10系统为例,演示永久关闭Windows系统更新的步骤和方法.首 ...

  • 安装MySQL数据库(MySQL的安装)

    作为一个数据分析师,经常要和数据打交道,而数据存储在数据库中,所以掌握一些数据库知识是很有必要的.数据库有很多种,作为初学者,推荐大家学习MySQL数据库,原因有以下三点.1. 使用广泛,很多公司都使 ...

  • windows平板有哪些

    本文由SMZDM.com用户lcrb原创.引文往年<Windows平板剁手指南>系列多介绍硬件产品,今年聊一聊软件,适合Windows平板上使用的软件应用.Windows平板二合一产品搭载 ...

  • 截图教你快速解决打印机后台程序服务没有运行的问题

    许多人在安装使用打印机时或者添加打击机时,通常会出现一个系统错误提示:"打印机后台程序服务没有运行"要么就在使用打印机打印时提示"后台处理程序子系统应用程序已停止工作并关 ...

  • 操作无法完成打印后台程序服务没有运行是怎么回事?

    我们在使用打印机的时候,通常会出现这样一个问题,那就是操作无法完成,打印后台程序服务没有运行的情况,那么遇到这类事的情况大家该怎么办呢?接下来小编就为大家介绍一下遇到操作无法完成,操作无法完成打印后台 ...

  • windows防火墙怎么关?常见问题处理方法介绍

    [导读]计算机是大家都非常熟悉的,我们在现代使用计算机的频率也是非常高的,不管在哪些方面,我们都可以使用到计算机.但是有的时候,我们也需要对计算机进行优化,例如一些不需要的程序,我们需要进行卸载和关闭 ...

  • windows更新失败处理办法

    导语:生活中大家都有接触到电脑,我们都知道电脑在使用过重中它的windows都是要进行一定的更新的.windows更新虽然简单,但是有时候在更新的过程中会遇到一些问题,那么在遇到windows更新失败 ...