Topshelf 操作服务

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;
  }
}

posted @ 2019-10-12 14:12  叁王爷  阅读(225)  评论(0编辑  收藏  举报