一、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
