1:项目里面需要引用 topshelf.dll 跟 topshelf.Log4Net.dll
2:创建一个新 类 :命名 ServiceRunner 并且继承: ServiceControl, ServiceSuspend
3: 构造方法里面new 日志的对象
LogWriter logger;
public ServiceRunner()
{
logger = HostLogger.Get<ServiceRunner>();
}
public bool Start(HostControl hostControl)
{
logger.Info("服务启动!");
JobScheduler.StartJob();
//scheduler.Start();
return true;
}
public bool Stop(HostControl hostControl)
{
logger.Info("服务关闭!");
//scheduler.Shutdown(false);
return true;
}
public bool Continue(HostControl hostControl)
{
logger.Info("服务继续!");
//scheduler.ResumeAll();
return true;
}
public bool Pause(HostControl hostControl)
{
logger.Info("服务暂停!");
//scheduler.PauseAll();
return true;
}
Start方法里面的JobScheduler就是具体的业务逻辑实现方法
二:
使用Log4net还需注意的是这个配置文件如果取的路径不正确的话是不会生成日志的,而且此时程序并不会抛异常。
调试程序的时候直接运行即可。
安装服务的话可以用管理员权限打开Cmd,定位到程序所在目录,使用下面命令安装即可:
TopShelfService.exe install
注意中间是空格,卸载同理:
TopShelfService.exe uninstall
如果嫌打开CMD定位啥的麻烦的话,可以直接在应用程序上点击右键创建快捷方式,打开快捷方式属性,在目标的后面直接添加空格和install,再创建一个卸载的快捷方式,在目标后面添加空格和uninstall,注意如果是win7系统,需要更改快捷方式兼容性中以管理员身份运行此程序,当然,如果把程序部署到另外的服务器上的话可能快捷方式的路径会改变。