Topshelf 一个简化Windows服务开发的宿主服务框架

Topshelf是 基于.net框架开发的宿主服务框架。该框架简化了服务的创建,开发人员只需要使用 Topshelf编写一个控制台程序,就能安装为Windows服务。之所以这样原因非常简单:调试一个控制台程序比调试Windows服务应用更加简单。一般应用测试后发布到生产环境,由于采用了Topshelf,很简单就能把一个应用安装为Windows服务。

官网:http://topshelf-project.com/  这里面有详细的文档及下载

Topshelf的代码托管在 http://github.com/topshelf/Topshelf/downloads   ,可以在这里下载到最新的代码。

新建一个项目,只需要引用Topshelf.dll 即可,为了日志输出显示,建议也同时引用Topshelf.Log4Net。程序安装命令

  • Install-Package Topshelf
  • Install-Package Topshelf.Log4Net

简单示例

创建服务

public class Service1
{
    readonly Timer _timer;
    public Service1()
    {
        _timer = new Timer(1000) {AutoReset = true};
        _timer.Elapsed += (sender, eventArgs) => Console.WriteLine("It is {0} and all is well", DateTime.Now);
    }
    public void Start() { _timer.Start(); }
    public void Stop() { _timer.Stop(); }
}

在宿主程序中注册

using Topshelf;

public class Program { public static void Main() { HostFactory.Run(x => { x.Service<Service1>(s => { s.ConstructUsing(name=> new Service1()); s.WhenStarted(tc => tc.Start()); s.WhenStopped(tc => tc.Stop()); }); x.RunAsLocalSystem(); x.SetDescription("Topshelf托管示例"); x.SetDisplayName("简单服务"); x.SetServiceName("SimpleService"); }); } }

  

原文地址:https://www.cnblogs.com/lilunjia/p/7090211.html