1、Topshelf的代码托管在http://topshelf-project.com/,可以在这里下载到最新的代码。
2、使用Visual Studio创建一个控制台应用程序引用程序集TopShelf.dll 合log4net.dll 。
3、创建一个简单的服务类,里面包含两个方法Start和Stop,这个服务只是演示代码,所以我们每隔5秒输出一个日志。
using System; using System.Timers; using log4net; namespace SampleWindowsService { public class SampleService { private Timer _timer = null; readonly ILog _log = LogManager.GetLogger(typeof(SampleService)); public SampleService() { double interval = 5000; _timer = new Timer(interval); _timer.Elapsed += new ElapsedEventHandler(OnTick); } protected virtual void _disibledevent=>object sender, ElapsedEventArgs e) { _log.Debug("Tick:" + DateTime.Now.ToLongTimeString()); } public void Start() { _log.Info("SampleService is Started"); _timer.AutoReset = true; _timer.Enabled = true; _timer.Start(); } public void Stop() { _log.Info("SampleService is Stopped"); _timer.AutoReset = false; _timer.Enabled = false; } } }
4、在Main方法中使用Topshelf宿主我们的服务,主要是告诉Topshelf如何设置我们的服务的配置和启动和停止的时候的方法调用。 using System.IO; using log4net.Config; using Topshelf; namespace SampleWindowsService { class Program { static void Main(string[] args) { XmlConfigurator.ConfigureAndWatch( new FileInfo(".\\log4net.config")); var host = HostFactory.New(x => { x.EnableDashboard(); x.Service
4、配置Log4net和运行我们的服务,服务可以当作控制台来运行,这在开发的时候是非常方便的。服务的安装很方便
SampleWindowsService.exe install
安装成功后,可以通过服务控制台启动,或者也可以通过一下命令运行
SampleWindowsService.exe start
服务的卸载方法也非常简单了
SampleWindowsService.exe uninstall
相关文章:
使用Topshelf创建Windows 服务
A WCF calculator in a windows service with TopShelf
最新评论