Topshelf 是第三方框架,需要从Nuget包中下载安装
static void Main(string[] args)
{
Host host = HostFactory.New(x =>
{
// 基本的配置
x.RunAsLocalSystem();
x.SetServiceName("TestService");
x.SetDisplayName("TestService");
x.SetDescription("测试服务");
x.StartAutomatically();
x.EnableShutdown();
// 注册服务
x.Service<TestService>(h => new TestService());
// 设置服务失败后的操作,分别对应第一次、第二次、后续
x.EnableServiceRecovery(t =>
{
t.RestartService(0);
t.RestartService(0);
t.RestartService(0);
t.OnCrashOnly();
});
});
host.Run();
}
// 增加类:
public class TestService : ServiceControl
{
public bool Start(HostControl hostControl)
{
//开始
FileStream fs = new FileStream("E:\TestService.txt", FileMode.OpenOrCreate, FileAccess.Write, FileShare.Write);
StreamWriter sw = new StreamWriter(fs);
for (int i = 0; i < 10; i++)
{
sw.WriteLine("Test-" + i);
}
sw.Flush();
fs.Close();
return true;
}
public bool Stop(HostControl hostControl)
{
// 结束
FileStream fs = new FileStream("E:\TestService.txt", FileMode.OpenOrCreate, FileAccess.Write, FileShare.Write);
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine("结束");
sw.Flush();
fs.Close();
return true;
}
}