C# Topshelf 搭建 Windows 服务

Topshelf 是一个用来部署基于.NET Framework 开发的服务的框架。简化服务创建于部署过程,并且支持控制台应用程序部署为服务。本文基于 .net core 控制台应用程序部署为服务(.net Framework 可用)。

第一步:创建名为 TopshelfDemo 的控制台应用程序

第二步:通过 Nuget 安装 Topshelf 包

第三步:Toshelf 配置,代码并不多下面都有注释

using System;
using Topshelf;namespace TopshelfDemo
{class Program{static void Main(string[] args){try{  // 配置和运行宿主服务HostFactory.Run(x =>                                 //1{x.Service<Service>(s =>                        //2{// 指定服务类型。这里设置为 Services.ConstructUsing(name => new Service());     //3// 当服务启动后执行什么s.WhenStarted(tc => tc.Start());              //4// 当服务停止后执行什么s.WhenStopped(tc => tc.Stop());               //5});// 服务用本地系统账号来运行x.RunAsLocalSystem();                            //6// 服务描述信息x.SetDescription("我的项目服务");        //7// 服务显示名称x.SetDisplayName("MyProjectServiceShowName");                       //8// 服务名称x.SetServiceName("MyProjectService");                       //9 }); }catch (Exception ex){Console.WriteLine(ex);}}}public class Service{ public void Start() {//To do something}public void Stop() {//To do something}}
}

第四步:安装服务

确保项目正常生成,然后通过管理员权限打开 cmd 命令窗口,找到项目所在的 Debug 目录,输入命令:TopshelfDemo.exe install或者双击文件

如果是使用 .net core 的小伙伴你会发现 Debug下压根没有 TopshelfDemo.exe ,这不是扯淡呢么,别急往下看。

由于 .net core 依赖 runtimes 所以我们需要发布以下程序,并且选择独立项目就ok啦。
 
 

到这里我出现了问题提示 TopshelfDemo.exe install 无法安装,根据提示执行./TopshelfDemo.exe install
就安装ok。

失败提示信息:The ** service can only be installed as an administrator

解决方案:右击**.exe文件,属性-》兼容性-》勾选以管理员身份运行

也可以通过 sc delete MyProjectService 进行删除

后面可以搭配Quartz实现任务调度

Topshelf 搭建 Windows 服务相关推荐

  1. c# Topshelf 搭建 Windows 服务

    用本文基于 .net core 控制台应用程序部署为服务(.net Framework 可用). 一.创建.NET Core的控制台应 第二步:通过 Nuget 安装 Topshelf 包. 三.代码 ...

  2. C#/.NET基于Topshelf创建Windows服务的守护程序作为服务启动的客户端桌面程序不显示UI界面的问题分析和解决方案

    C#/.NET基于Topshelf创建Windows服务的守护程序作为服务启动的客户端桌面程序不显示UI界面的问题分析和解决方案 参考文章: (1)C#/.NET基于Topshelf创建Windows ...

  3. 使用Topshelf创建Windows服务

    一.实现效果 使用Topshelf创建Windows服务项目工程下载 二.Topshelf简介 2.1.Topshelf介绍 TopShelf是一个托管使用.NET框架编写的服务的框架,是创建wind ...

  4. Quartz+TopShelf实现Windows服务作业调度 (转载)

    Quartz:首先我贴出来了两段代码(下方),可以看出,首先会根据配置文件(quartz.config),包装出一个Quartz.Core.QuartzScheduler instance,这是一个调 ...

  5. 如何使用Topshelf管理Windows服务

    一.官方网站及源码下载 1.官方网站:http://topshelf-project.com/ 2.源码下载:https://github.com/Topshelf/Topshelf/download ...

  6. 使用Topshelf管理Windows服务

    目的:以控制台方式开发Windows服务程序,调试部署方便. https://www.cnblogs.com/itjeff/p/8316244.html https://www.cnblogs.com ...

  7. .net 中用TopShelf 实现windows服务

    1.TopShelf 是一个开源的跨平台的宿主服务框架,支持Windows和Mono,只需要几行代码就可以构建一个很方便使用的服务宿主.TopShelf 安装不需要依赖 .net framework ...

  8. 利用Topshelf搭建Windowns服务实现定期自动添加数据逻辑和原理

    一.Topshelf基本配置 using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

  9. Topshelf创建Windows服务

    入门例子 using log4net; using System; using System.Timers; using Topshelf;namespace ConsoleAppTest {clas ...

最新文章

  1. php扩展开发中文教程.pdf,PHP扩展开发系列教程-1
  2. NBT:Rob Knight-微生物组数据降维新方法
  3. 企业级 CICD 工具部署 Serverless 应用的落地实践
  4. 内中断---汇编学习笔记
  5. struts2获取请求参数的三种方式及传递给JSP参数的方式
  6. C++primer 13.6.2节练习
  7. asyncdata 获取参数_nuxt的asyncData发送post请求如何传递FormData形式的参数
  8. 更新k8s镜像版本的三种方式
  9. http发送16进制报文_图解HTTP 第三章HTTP报文内的HTTP信息
  10. android camera预览帧,android camera2处理每一帧并显示其预览
  11. 可视化设计的时候应该注意什么
  12. 高亮显示不区分大小写的关键字——ASP
  13. Linux下常用的串口助手 —— minicom、putty、cutecom
  14. k8s1.23 Ingress-nginx实操
  15. 模拟ATM机存取款管理系统设计(C++)
  16. php农历生日计算,php实现的农历算法实例
  17. 拉钩网前端项目实战04
  18. vant 引用Lazyload报错Lazyload
  19. 搜你所想(去除最新版本电驴搜索限制方法共享)
  20. Linux常用命令使用---su 与su -

热门文章

  1. 【C++】之 iota() 函数与 atoi() 函数详解
  2. 分布式追踪系统的对比、实现与使用—NodeTracing
  3. 超平面是什么?-SVM
  4. 信息安全之数字信封原理
  5. Word里添加图目录
  6. python模拟生产者消费者进程可视化tkinter
  7. linux下版图设计,版图课程设计报告
  8. 手机摄影从小白到大师 泼辣修图编著 第一章 构图和色彩原理
  9. GitHub上的开源复刻:暗黑破坏神2
  10. Sky中国War3的旗帜