一、TopShelf介绍

    topShelf是创建Windows服务的一种方式,可以方便管理应用服务,最大广泛应用于,数据实时接收,定时推送等。

二、TopShelf使用

    1、安装 TopShelf程序包

      

   2、编码 

 HostFactory.Run(x =>
{
x.UseLog4Net();
x.Service<TownCrier>(s =>
{
s.ConstructUsing(name => new TownCrier());
s.WhenStarted(tc => tc.Start());
s.WhenStopped(tc => tc.Stop());
});
x.RunAsLocalSystem();
x.SetDescription("QuartzJob任务定时发送");
x.SetDisplayName("QuartzJob");
x.SetServiceName("QuartzJob"); x.EnablePauseAndContinue();
});

       其中Run方法的回调参数方法,在运行时执行,方法内是一些配置信息。

       其中TownCrier类是我们服务实现类,服务启动时通过WhenStarted调用对应实现的OnStart,停止一样。

       RunAsLocalSystem()表示以本地系统账号运行,可选的还有网络服务和本地服务账号。

       SetDescription("Topshelf测试例子"); 设置服务的描述

       SetDisplayName("TopshelfExample"); 设置服务的显示名称

       x.SetServiceName("TopshelfExample"); 设置服务的名称

      TownCrier服务类:

 public class TownCrier
{
readonly Timer _timer;
public TownCrier()
{
_timer = new Timer() { AutoReset = true };
_timer.Elapsed += (sender, eventArgs) => Console.WriteLine("---------------------DateTime: {0} ------------------- ", DateTime.Now);
}
public void Start() { _timer.Start(); }
public void Stop() { _timer.Stop(); }
}

    3、安装

    使用管理员打开CMD窗口

    

     安装服务 server.exe install

     启动服务 server.exe start

     停止服务 server.exe stop

     卸载服务 server.exe uninstall

最新文章

  1. mysql 行级锁的使用以及死锁的预防
  2. 2-st学习笔记
  3. CodeBlock 使用TextOut出错
  4. 1.2 《硬啃设计模式》 第2章 学习设计模式需掌握的UML知识
  5. JSP中的Servlet及Filter
  6. 当一个activity中按钮过多时怎么办?
  7. WIN10 ANDROIDSTUDIO1.2 安装完首次启动报错
  8. zw版【转发&#183;台湾nvp系列Delphi例程】HALCON ObjToInteger1-4
  9. DataGridView控件-学习笔记总结
  10. 什么是MemCache
  11. 浅析Django之session与cookie
  12. ORACLE中关于表的一些特殊查询语句
  13. Android 视频播放器 (二):使用MediaPlayer播放视频
  14. Remote debugger is in a background tab which may cause apps to perform slowly. Fix this by foregrounding the tab (or opening it in a separate window).
  15. python3: print()函数:def,end关键字介绍
  16. 多线程(Thread,Runnable)
  17. PAT 甲级 1068 Find More Coins
  18. sql 对某列取值进行if判断
  19. JavaScript 小知识
  20. 百度乐播音乐真实地址查找api接口

热门文章

  1. 用正则表达式来验证QQ号是否合法
  2. 【Java库】如何使用优秀的加密库Jasypt来保护你的敏感信息?
  3. 初步认知jQuery
  4. C#语言和SQL Server数据库技术_My Bank银行系统
  5. [TimLinux] systemd 精通CentOS7系统启动systemd
  6. HDU1846 Brave Game(巴什博弈)
  7. HDU3666-THE MATRIX PROBLEM(差分约束-不等式解得存在性判断 对数转化)
  8. Docker系列-(2) 镜像制作与发布
  9. 167. 两数之和 II - 输入有序数组
  10. 【Nodejs】392- 基于阿里云的 Node.js 稳定性实践