一、TopShelf介绍
topShelf是创建Windows服务的一种方式,可以方便管理应用服务,最大广泛应用于,数据实时接收,定时推送等。
二、TopShelf使用
1、安装 TopShelf程序包
2、编码
1 HostFactory.Run(x => 2 { 3 x.UseLog4Net(); 4 x.Service<TownCrier>(s => 5 { 6 s.ConstructUsing(name => new TownCrier()); 7 s.WhenStarted(tc => tc.Start()); 8 s.WhenStopped(tc => tc.Stop()); 9 }); 10 x.RunAsLocalSystem(); 11 x.SetDescription("QuartzJob任务定时发送"); 12 x.SetDisplayName("QuartzJob"); 13 x.SetServiceName("QuartzJob"); 14 15 x.EnablePauseAndContinue(); 16 });
其中Run方法的回调参数方法,在运行时执行,方法内是一些配置信息。
其中TownCrier类是我们服务实现类,服务启动时通过WhenStarted调用对应实现的OnStart,停止一样。
RunAsLocalSystem()表示以本地系统账号运行,可选的还有网络服务和本地服务账号。
SetDescription("Topshelf测试例子"); 设置服务的描述
SetDisplayName("TopshelfExample"); 设置服务的显示名称
x.SetServiceName("TopshelfExample"); 设置服务的名称
TownCrier服务类:
1 public class TownCrier 2 { 3 readonly Timer _timer; 4 public TownCrier() 5 { 6 _timer = new Timer(1000) { AutoReset = true }; 7 _timer.Elapsed += (sender, eventArgs) => Console.WriteLine("---------------------DateTime: {0} ------------------- ", DateTime.Now); 8 } 9 public void Start() { _timer.Start(); } 10 public void Stop() { _timer.Stop(); } 11 }
3、安装
使用管理员打开CMD窗口
安装服务 server.exe install
启动服务 server.exe start
停止服务 server.exe stop
卸载服务 server.exe uninstall