Topshelf:一款非常好用的 Windows 服务开发框架 转发https://www.cnblogs.com/happyframework/p/3601995.html...
背景
多数系统都会涉及到“后台服务”的开发,一般是为了调度一些自动执行的任务或从队列中消费一些消息,开发 windows service 有一点不爽的是:调试麻烦,当然你还需要知道 windows service 相关的一些开发知识(也不难),本文介绍一个框架,让你让 console application 封装为 windows service,这样你就非常方便的开发和调试 windows service。
TopShelf
![](/assets/blank.gif)
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 }
![](/assets/blank.gif)
备注
TopShelf 提高的 API 非常简单,也提高了和 Log4Net 的集成,结合 Quartz(后面介绍),可以实现任务调度服务。
转载于:https://www.cnblogs.com/Jeely/p/10784918.html
Topshelf:一款非常好用的 Windows 服务开发框架 转发https://www.cnblogs.com/happyframework/p/3601995.html...相关推荐
- Topshelf:一款非常好用的 Windows 服务开发框架
背景 多数系统都会涉及到"后台服务"的开发,一般是为了调度一些自动执行的任务或从队列中消费一些消息,开发 windows service 有一点不爽的是:调试麻烦,当然你还需要知道 ...
- 利用Topshelf把.NET Core Generic Host管理的应用程序部署为Windows服务
2019第一篇文章. 此文源于前公司在迁移项目到.NET Core的过程中,希望使用Generic Host来管理定时任务程序时,没法部署到Windows服务的问题,而且官方也没给出解决方案,只能关注 ...
- 把java程序作为windows服务运行
参考: https://www.jianshu.com/p/fc9e4ea61e13 https://blog.csdn.net/qq_28566071/article/details/8088250 ...
- (转)创建Windows服务(Windows Services)N种方式总结
转自:http://www.cnblogs.com/aierong/archive/2012/05/28/2521409.html 最近由于工作需要,写了一些windows服务程序,有一些经验,我现在 ...
- 基于SignalR实现B/S系统对windows服务运行状态的监测
通常来讲一个BS项目肯定不止单独的一个BS应用,可能涉及到很多后台服务来支持BS的运行,特别是针对耗时较长的某些任务来说,Windows服务肯定是必不可少的,我们还需要利用B/S与windows服务进 ...
- windows 服务中托管asp.net core
在windows 服务中托管asp.net core SDK 2.1.300 官方示例 1.添加运行标识符 xml <PropertyGroup> <TargetFramework& ...
- 用C#创建Windows服务(Windows Services)
转载自 hyslove 最终编辑 hyslove Windows服务在Visual Studio 以前的版本中叫NT服务,在VS.net启用了新的名称.用Visual C# 创建Windows服务不是 ...
- 安利7款珍藏已久的windows软件,每一个都非常强大
给大家精心分享7款我珍藏已久windows软件,直接上干货! 1.智办事(全平台) 智办事是一款基于阿里工作方法论的目标管理协作软件,可以提升团队效率,敏捷管理,降低管理成本,打造超强的个人和团队执行 ...
- C#/.NET基于Topshelf创建Windows服务的守护程序作为服务启动的客户端桌面程序不显示UI界面的问题分析和解决方案
C#/.NET基于Topshelf创建Windows服务的守护程序作为服务启动的客户端桌面程序不显示UI界面的问题分析和解决方案 参考文章: (1)C#/.NET基于Topshelf创建Windows ...
最新文章
- C#获取当前进程、项目路径的方法
- python sqlalchemy操作SQLite
- StarUML 4.0
- haproxy 参数说明
- 为什么自己编写的页面总是在那里抖动_「内存抖动」?别再吓唬面试者们了行吗...
- C语言 fopen 函数 - C语言零基础入门教程
- LeetCode算法入门- Remove Element -day20
- 【BZOJ2157】旅游,树链剖分练习
- laravel框架连接Oracle,laravel5.8(十四)连接oracle数据库
- 八段锦是一种不错的养生运动
- MyDiskTest v2.98-U盘扩容检测工具
- mzy git学习,分支冲突,以及冲突解决(五)
- HadoopYarn设置Fair Scheduler公平调度器
- sql连表查询、子查询、组合查询
- LeetCode.1046-最后的石头重量(Last Stone Weight)
- Centos打开3306端口
- js动态修改表格数据
- unity动画系统之两个动画片段之间连线设置
- 《自控力》第九章读书笔记
- 时间复杂度O(1),O(n),O(logn),O(nlogn)的意思
热门文章
- 作者赠送的《我的第一本c++书》收到啦
- css元素捕捉,css元素选择器
- python处理3000个excel-Python处理Excel数据的坑,一文让你不用重复犯错
- python新手项目-Python 的练手项目有哪些值得推荐?
- python json.loads()中文问题-python中文编码json中文输出问题
- 英语和数学不好可以学python-学习Python总是学了新内容又忘了旧的咋办?
- python自学步骤-学习Python最正确的步骤(0基础必备)
- python的工作方向-Python的就业的方向和前景
- python主要用途-学习Python的三大主要用途
- python基础代码事例-零基础学习Python开发练习100题实例(2)