Topshelf 使用
前言
在写后台代码的过程中,经常会遇到要写一些单独的服务。以前呢,直接用的是 .NET 下的 “Windows 服务” 控件开发的。
这个传统的控件开发起来很不方面,使用也不友好。发现有用 Topshelf 的,这个第三方的框架,集成的很好,用起来也方便。
这里就说下我的使用过程。
使用
1、添加引用
在需要使用Topshelf的项目右键“引用”=》“管理NuGet程序包”
搜索“Topshelf”就可以,安装最新版。

2、代码中使用
这里直接上代码。
class Program
{
static void Main(string[] args)
{
Host host = HostFactory.New(x =>
{
// 基本的配置
x.RunAsLocalSystem();
x.SetServiceName("Service");
x.SetDisplayName("Service");
x.SetDescription("服务");
x.StartAutomatically();
x.EnableShutdown();
// 注册服务
x.Service<Service>(hostSettings => new Service()); // 设置服务失败后的操作,分别对应第一次、第二次、后续
x.EnableServiceRecovery(t =>
{
t.RestartService(); t.RestartService(); t.RestartService();
t.OnCrashOnly();
});
}); host.Run();
}
}
这里要继承 Topshelf的“ServiceControl”,来开始服务和结束服务。
public class Service : ServiceControl
{public bool Start(HostControl hostControl)
{
// 开始具体的业务逻辑
return true;
} public bool Stop(HostControl hostControl)
{
// 结束
return true;
}
}
3、部署服务
部署、开始、卸载服务只需要一句命令行就可以:
安装:Service.exe install
启动:Service.exe start
卸载:Service.exe uninstall
这些命令是在当前文件夹下打开 CMD 执行的命令。如果不是当前文件夹,需要带上绝对路径。
Topshelf 使用的更多相关文章
- Topshelf 支持Mono 扩展Topshelf.Linux
使用Topshelf 5步创建Windows 服务 这篇文章大家可以了解到使用Topshelf可以很好的支持Windows服务的开发,但是它和Mono不兼容,Github上有一个扩展https://g ...
- Topshelf 学习 跨平台
Topshelf是一个开源的跨平台的宿主服务框架,支持Windows和Mono,只需要几行代码就可以构建一个很方便使用的服务宿主. 官网:http://topshelf-project.com Git ...
- topshelf和quartz内部分享
阅读目录: 介绍 基础用法 调试及安装 可选配置 多实例支持及相关资料 quartz.net 上月在公司内部的一次分享,现把PPT及部分交流内容整理成博客. 介绍 topshelf是创建windows ...
- 使用topshelf包装redis为windows服务
Redis服务端目前用的是控制台程序运行,部署的时候能作为windows服务后台运行感觉更好.找到一篇文章Running Redis as a Windows Service,利用win ...
- TopShelf框架创建Windows服务作为Remoting的宿主案例:
1.创建服务 using System; using System.Collections.Generic; using System.Linq; using System.Text; using S ...
- 使用Topshelf快速搭建Windows服务
1.创建控制台程序 2.安装Topshelf组件 Install-Package Topshelf using System; using System.Timers; using Topshelf ...
- Topshelf + ServiceModelEx + Nlog 从头构建WCF
前言 Topshelf可以很方便的构建windows service,而且在本地开发时也可以构建Console宿主,因此很方便WCF的开发. ServiceModelEx则提供了很多便利的方法来配置w ...
- topshelf包装redis为windows服务
topshelf包装redis为windows服务 Redis服务端目前用的是控制台程序运行,部署的时候能作为windows服务后台运行感觉更好.找到一篇文章Running Redis as a Wi ...
- 使用Topshelf创建Windows服务
概述 Topshelf是创建Windows服务的另一种方法,老外的一篇文章Create a .NET Windows Service in 5 steps with Topshelf通过5个步骤详细的 ...
- 简单实现Windows服务 TopShelf
Nugut安装 log4net 和 topShelf 1)ServiceRunner类 using log4net;using Topshelf; class ServiceRunner : Serv ...
随机推荐
- 【GStreamer开发】GStreamer播放教程01——playbin2的使用
目标 我们前面已经使用过了playbin2这个element,它可以让我们做的很少而实现很多.本教程会展示当这个element的默认设置在一些特殊情形下不符合我们的需求是可以做的一些深度定制,我们会看 ...
- springboot备份mysql后发送邮件并删除备份文件,支持win和Linux
首先加入springboot的邮箱依赖 <!--邮箱依赖--> <!-- https://mvnrepository.com/artifact/org.springframework ...
- Appium移动自动化测试-----(十一)appium API 之键盘操作
模拟键盘输入也是非常重要的操作.这一小节来介绍那些关于键盘的操作. 1.sendKeys()方法 方法: sendKeys() 用法: driver.findElements(By.name(&quo ...
- Tomcat 服务器介绍和使用
服务器的概念和作用: 问题: 学习了 java 编程之后,java 代码的一个很重要的作用就是进行数据的处理,但是目前来说我们运行编写的代码,只有一次性,也就是运行完毕后,如果需要再次运行则需要再次手 ...
- 转录组组装软件stringtie
StringTie是約翰·霍普金斯大學计算机生物中心开发的一款转录组组装软件,在组装转录本的完整度,精度和速度方面都较以往的cufflinks 有很大的提升,也是目前有参考基因组转录组主流的组装软件. ...
- 用pytorch1.0搭建简单的神经网络:进行回归分析
搭建简单的神经网络:进行回归分析 import torch import torch.nn.functional as F # 包含激励函数 import matplotlib.pyplot as p ...
- vue导入css,js和放置html代码
使用场景:我是从网上找的html前端页面模板,导入找的模板中的css和js到vue中使用. 1.在main.js中全局导入css和js import '@/assets/css/main.css' i ...
- k8s 启动pod的问题
版本: k8s 1.5 docker 1.3 CentOS 7.6 使用命令 kubectl get pods输出no resources.解决方法是修改 apiserver 的配置文件 vim /e ...
- Linux下用命令来执行kettle文件资源库的文件ktr与kjb的方法
转载地址: https://blog.csdn.net/zuolovefu/article/details/78083445 1. 准备工作 一个简单的job,一个简单的trans. trans:读取 ...
- 怎样查看系统安装的python版本
方法一: 在命令行下使用python -V 方法二: 在命令行下进入python交互模式, 可以在第一行看到python的版本信息