背景

多数系统都会涉及到“后台服务”的开发,一般是为了调度一些自动执行的任务或从队列中消费一些消息,开发 windows service 有一点不爽的是:调试麻烦,当然你还需要知道 windows service 相关的一些开发知识(也不难),本文介绍一个框架,让你让 console application 封装为 windows service,这样你就非常方便的开发和调试 windows service。

TopShelf

 1 using System;2 using System.Collections.Generic;3 using System.Linq;4 using System.Text;5 using System.Threading.Tasks;6 using System.Timers;7 8 using Topshelf;9 using Topshelf.Builders;
10 using Topshelf.Configurators;
11 using Topshelf.HostConfigurators;
12
13 namespace TopshelfStudy
14 {
15     public sealed class TimeReporter
16     {
17         private readonly Timer _timer;
18         public TimeReporter()
19         {
20             _timer = new Timer(1000) { AutoReset = true };
21             _timer.Elapsed += (sender, eventArgs) => Console.WriteLine("当前时间:{0}", DateTime.Now);
22         }
23         public void Start() { _timer.Start(); }
24         public void Stop() { _timer.Stop(); }
25     }
26
27     class Program
28     {
29         static void Main(string[] args)
30         {
31             HostFactory.Run(x =>
32             {
33                 x.Service<TimeReporter>(s =>
34                 {
35                     s.ConstructUsing(settings => new TimeReporter());
36                     s.WhenStarted(tr => tr.Start());
37                     s.WhenStopped(tr => tr.Stop());
38                 });
39
40                 x.RunAsLocalSystem();
41
42                 x.SetDescription("定时报告时间");
43                 x.SetDisplayName("时间报告器");
44                 x.SetServiceName("TimeReporter");
45             });
46         }
47     }
48 }

备注

TopShelf 提高的 API 非常简单,也提高了和 Log4Net 的集成,结合 Quartz(后面介绍),可以实现任务调度服务。

转载于:https://www.cnblogs.com/Jeely/p/10784918.html

Topshelf:一款非常好用的 Windows 服务开发框架 转发https://www.cnblogs.com/happyframework/p/3601995.html...相关推荐

  1. Topshelf:一款非常好用的 Windows 服务开发框架

    背景 多数系统都会涉及到"后台服务"的开发,一般是为了调度一些自动执行的任务或从队列中消费一些消息,开发 windows service 有一点不爽的是:调试麻烦,当然你还需要知道 ...

  2. 利用Topshelf把.NET Core Generic Host管理的应用程序部署为Windows服务

    2019第一篇文章. 此文源于前公司在迁移项目到.NET Core的过程中,希望使用Generic Host来管理定时任务程序时,没法部署到Windows服务的问题,而且官方也没给出解决方案,只能关注 ...

  3. 把java程序作为windows服务运行

    参考: https://www.jianshu.com/p/fc9e4ea61e13 https://blog.csdn.net/qq_28566071/article/details/8088250 ...

  4. (转)创建Windows服务(Windows Services)N种方式总结

    转自:http://www.cnblogs.com/aierong/archive/2012/05/28/2521409.html 最近由于工作需要,写了一些windows服务程序,有一些经验,我现在 ...

  5. 基于SignalR实现B/S系统对windows服务运行状态的监测

    通常来讲一个BS项目肯定不止单独的一个BS应用,可能涉及到很多后台服务来支持BS的运行,特别是针对耗时较长的某些任务来说,Windows服务肯定是必不可少的,我们还需要利用B/S与windows服务进 ...

  6. windows 服务中托管asp.net core

    在windows 服务中托管asp.net core SDK 2.1.300 官方示例 1.添加运行标识符 xml <PropertyGroup> <TargetFramework& ...

  7. 用C#创建Windows服务(Windows Services)

    转载自 hyslove 最终编辑 hyslove Windows服务在Visual Studio 以前的版本中叫NT服务,在VS.net启用了新的名称.用Visual C# 创建Windows服务不是 ...

  8. 安利7款珍藏已久的windows软件,每一个都非常强大

    给大家精心分享7款我珍藏已久windows软件,直接上干货! 1.智办事(全平台) 智办事是一款基于阿里工作方法论的目标管理协作软件,可以提升团队效率,敏捷管理,降低管理成本,打造超强的个人和团队执行 ...

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

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

最新文章

  1. C#获取当前进程、项目路径的方法
  2. python sqlalchemy操作SQLite
  3. StarUML 4.0
  4. haproxy 参数说明
  5. 为什么自己编写的页面总是在那里抖动_「内存抖动」?别再吓唬面试者们了行吗...
  6. C语言 fopen 函数 - C语言零基础入门教程
  7. LeetCode算法入门- Remove Element -day20
  8. 【BZOJ2157】旅游,树链剖分练习
  9. laravel框架连接Oracle,laravel5.8(十四)连接oracle数据库
  10. 八段锦是一种不错的养生运动
  11. MyDiskTest v2.98-U盘扩容检测工具
  12. mzy git学习,分支冲突,以及冲突解决(五)
  13. HadoopYarn设置Fair Scheduler公平调度器
  14. sql连表查询、子查询、组合查询
  15. LeetCode.1046-最后的石头重量(Last Stone Weight)
  16. Centos打开3306端口
  17. js动态修改表格数据
  18. unity动画系统之两个动画片段之间连线设置
  19. 《自控力》第九章读书笔记
  20. 时间复杂度O(1),O(n),O(logn),O(nlogn)的意思

热门文章

  1. 作者赠送的《我的第一本c++书》收到啦
  2. css元素捕捉,css元素选择器
  3. python处理3000个excel-Python处理Excel数据的坑,一文让你不用重复犯错
  4. python新手项目-Python 的练手项目有哪些值得推荐?
  5. python json.loads()中文问题-python中文编码json中文输出问题
  6. 英语和数学不好可以学python-学习Python总是学了新内容又忘了旧的咋办?
  7. python自学步骤-学习Python最正确的步骤(0基础必备)
  8. python的工作方向-Python的就业的方向和前景
  9. python主要用途-学习Python的三大主要用途
  10. python基础代码事例-零基础学习Python开发练习100题实例(2)