开源项目TopSelf提供了创建Windows Service的简单易用方法。项目网站:Topshelf (topshelf-project.com)
项目的代码可以从github下载:Topshelf/Topshelf: An easy service hosting framework for building Windows services using .NET (github.com)
使用非常简单,创建一个控制台程序,引用Nuget包Topshelf和Topshelf.log4net,官网的示例代码如下:
public class TownCrier
{
readonly Timer _timer;
public TownCrier()
{
_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(); }
}
public class Program
{
public static void Main()
{
var rc = HostFactory.Run(x => //1
{
x.Service<TownCrier>(s => //2
{
s.ConstructUsing(name=> new TownCrier()); //3
s.WhenStarted(tc => tc.Start()); //4
s.WhenStopped(tc => tc.Stop()); //5
});
x.RunAsLocalSystem(); //6
x.SetDescription("Sample Topshelf Host"); //7
x.SetDisplayName("Stuff"); //8
x.SetServiceName("Stuff"); //9
}); //10
var exitCode = (int) Convert.ChangeType(rc, rc.GetTypeCode()); //11
Environment.ExitCode = exitCode;
}
}
主要使用使用HostFactory.Run方法注册服务。代码很容易懂。安装服务、启动服务和停止服务都很简单:
安装:TopshelfDemo.exe install
启动:TopshelfDemo.exe start
卸载:TopshelfDemo.exe uninstall
网友评论