Topshelf相关
环境搭建
安装Topshelf包:
- Install-Package Topshelf
- Install-Package Topshelf.Log4Net
快捷创建Windows服务
1、 创建任务
class MyJob:Topshelf.ServiceControl
{
readonly Timer _timer;
public MyJob()
{
_timer = new Timer { AutoReset = true, Interval = 2000 };
_timer.Elapsed += _timer_Elapsed;
}
private void _timer_Elapsed(object sender, ElapsedEventArgs e)
{
Console.WriteLine($"当前时间为:{DateTime.Now}");
}
//public void Start() =>_timer.Start();
//public void Stop() => _timer.Stop();
public bool Start(HostControl hostControl)
{
_timer.Start();
return true;
}
public bool Stop(HostControl hostControl)
{
_timer.Stop();
throw new Exception();
}
}
2、 创建Windows服务
HostFactory.Run(hcf =>
{
hcf.Service<MyJob>(s =>
{
s.ConstructUsing(name => new MyJob());
//服务启动后
s.WhenStarted(t => t.Start());
//当服务停止的时候
s.WhenStopped(t => t.Stop());
});
hcf.RunAsLocalSystem();
//hcf.RunAsLocalService();
//hcf.RunAsNetworkService();
//显示的服务名称
hcf.SetDisplayName("MyFirstService");
//服务名称
hcf.SetServiceName("MyFirstService");
hcf.SetDescription("这是利用Topshelf开源项目简单方便的快捷生成的服务,服务主要是用于记录日志");
});
启动项目运行结果:
安装 Windows服务
1、安装服务:
Study.TopshelfDemoFramework.exe install
运行cmd输入services.msc进入服务查看安装的服务
2、启动服务:
Study.TopshelfDemoFramework.exe start
这时打开服务窗口就能看见服务状态为正在运行中。
3、卸载服务:
Study.TopshelfDemoFramework.exe uninstall
其他更多信息请参考官方文档,Topshelf也集成了Log4Net,在这个demo中只是简单的演示如何创建服务及运行服务,记录日志相关集成留给园友自己去完成。