windowsSevice程序和topshelf程序创建服务对比
文章原地址:http://www.80iter.com/blog/1451523192435464
Topshelf 创建.net服务整理和安装步骤
windowsService和topshelf服务区别请看 → windowsSevice程序和topshelf程序创建服务对比
Topshelf下载地址https://github.com/Topshelf/Topshelf/downloads
官网http://topshelf-project.com/
文档http://docs.topshelf-project.com/en/latest/
1、创建项目

2、添加Topshelf,使用nuget安装最新的topshelf程序包

3、编写测试代码,直接贴Program类代码
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | usingSystem.Timers;usingTopshelf;namespaceTopShelfConsoleApplication{    publicclassTownCrier    {        TopshelfClass topshelfClass = newTopshelfClass();        readonlyTimer _timer;        publicTownCrier()        {            //设定了一个 1000 毫秒的服务执行间隔              _timer = newTimer(1000) { AutoReset = true};            _timer.Elapsed += newElapsedEventHandler(topshelfClass.Test);        }        publicvoidStart() { _timer.Start(); }        publicvoidStop() { _timer.Stop(); }    }    publicclassProgram    {        publicstaticvoidMain()        {            HostFactory.Run(x =>            {                x.Service<TownCrier>(s =>                {                    s.ConstructUsing(name => newTownCrier());                    s.WhenStarted(tc => tc.Start());                    s.WhenStopped(tc => tc.Stop());                });                x.RunAsLocalSystem();                x.SetDescription("Topshlef服务描述......");                x.SetDisplayName("TopshlefTest");                x.SetServiceName("TopshlefTest");            });        }    }} | 
TopshelfClass处理类
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | usingSystem;usingSystem.IO;usingSystem.Timers;namespaceTopShelfConsoleApplication{    publicclassTopshelfClass    {        publicvoidTest(objectsource, ElapsedEventArgs e)        {            stringpath = "F:\\TopshelfTest\\TopshelfTest.txt";            FileStream fs = newFileStream(path, FileMode.Append);            StreamWriter sw = newStreamWriter(fs);            sw.WriteLine(DateTime.Now.ToString());            sw.Close();            fs.Close();        }    }} | 
具体说明请参照官网给的技术解释文档,我就不在这里解释代码咯:https://topshelf.readthedocs.org/en/latest/configuration/quickstart.html
我只说明一点:上面代码设置为1秒执行一次,在txt文件追加下时间戳,为了防止本地开发测试的调试问题,可以设置属性:

4、发布部署
a、发布部署包,自行处理
b、进入cmd命令,进入部署包目录,找到exe文件执行install安装命令,如下图:

c、查看本机服务,可见已经安装成功:

d、安装n个相同服务使用命令:-instance " test1" install


e、常用命令
| 1 2 3 4 5 | install:ConsoleApplication1.exe installstart:ConsoleApplication1.exe start ,执行后服务被启动stop:ConsoleApplication1.exe stop ,执行后服务被停止uninstall:ConsoleApplication1.exe uninstall,执行后服务被卸载-instance:  ConsoleApplication1.exe -instance " test1"install | 
5、测试服务运行,开启两个服务,结果如下:

至此,简单的topshelf服务使用就完成咯~~~~~
windowsSevice程序和topshelf程序创建服务对比的更多相关文章
- Net Core基于TopShelf程序运行于服务模式
		目录 Net Core基于TopShelf程序运行于服务模式 1 背景 2 优势 2.1 服务模式可设置重启条件 2.2 避免误操作 3.使用 3.1 GUI方式安装Topshelf包 4 配置 5 ... 
- C#创建服务及使用程序自动安装服务,.NET创建一个即是可执行程序又是Windows服务的exe
		不得不说,.NET中安装服务很麻烦,即要创建Service,又要创建ServiceInstall,最后还要弄一堆命令来安装和卸载. 今天给大家提供一种方式,直接使用我们的程序来安装/卸载服务,并且可以 ... 
- [转]C#创建服务及使用程序自动安装服务,.NET创建一个即是可执行程序又是Windows服务的exe
		写在前面 原文地址:C#创建服务及使用程序自动安装服务,.NET创建一个即是可执行程序又是Windows服务的exe 这篇文章躺在我的收藏夹中有很长一段时间了,今天闲着没事,就自己动手实践了一下.感觉 ... 
- C#创建服务及使用程序自动安装服务
		.NET创建一个即是可执行程序又是Windows服务的exe 不得不说,.NET中安装服务很麻烦,即要创建Service,又要创建ServiceInstall,最后还要弄一堆命令来安装和卸载. 今天给 ... 
- Ubuntu上使用systemd创建服务文件来启动和监视底层网络应用程序实现守护进程
		在Linux上使用Nginx设置ASP.NET Core的托管环境,并部署到它 创建服务文件 创建服务定义文件: sudo vim /etc/systemd/system/kestrel-basic. ... 
- Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基础文件配置,Web框架的本质,服务器程序和应用程序(wsgiref服务端模块,jinja2模板渲染模块)的使用
		Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基 ... 
- Topshelf便捷创建Windows服务
		结合Quartz.net学习,前提已经创建了一个定时任务,可见 <定时调度框架:Quartz.net> (基于配置文件形式) 首先引用Topshelf.dll 自定义服务TestServi ... 
- .net core+topshelf+quartz创建windows定时任务服务
		.net core+topshelf+quartz创建windows定时任务服务 准备工作 创建.net core 控制台应用程序,这里不做过多介绍 添加TopShelf包:TopShelf: 添加Q ... 
- 关于使用Topshelf创建服务
		目录 0. 背景说明 1. 使用Topshelf组件创建Windows服务 1.1 依赖Quartz.net实现定时任务 1.2 依赖于Topshelf创建服务类 1.3 log4net的配置文件lo ... 
随机推荐
- Spring切面编程实践【原创】
			定义 什么叫Spring面向切面编程(AOP),请自行百度,这边就不做详细介绍了. 场景 有两个对象,字典和工程信息Bean,每次新增或修改对象时,记录新增和修改的时间. 基类定义 package m ... 
- Tomcat Server处理一个http请求的过程
			Tomcat Server处理一个http请求的过程 假设来自客户的请求为: http://localhost:8080/wsota/wsota_index.jsp 1) 请求被发送到本机端口8080 ... 
- 吴裕雄 python 机器学习——逻辑回归
			import numpy as np import matplotlib.pyplot as plt from matplotlib import cm from mpl_toolkits.mplot ... 
- 爬虫之scrapy入门
			1.介绍 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的 ... 
- failed to find global analyzer [uax_url_email]
			ES的默认分词设置是standard,这个在中文分词时就比较尴尬了,会单字拆分,比如我搜索关键词“清华大学”,这时候会按“清”,“华”,“大”,“学”去分词,然后搜出来的都是些“清清的河水”,“中华儿 ... 
- appium 移动端自动化测试一
			最近公司决定使用appium为主体框架做一个移动端得自动化测试系统,我会陆续记录项目得进展. 1.首先是appium环境得搭建, 需要安装appium-server ,appium-desktop, ... 
- Huawei BGP和OSPF双边界重分布(一)
			网络拓扑: PS:本例使用明细前缀列表双边界引入 S5700-LSW1 ================================================================ ... 
- python-django(创建项目、应用、运行)
			1.创建项目.应用 方法一.命令行创建 <1>.创建项目命令 django-admin startproject 项目名称 <2>.创建应用命令 django-admin s ... 
- Struct2 基础介绍
			前面花一周时间学习了servlet+jsp+mysql, 并且简单实现了登录注册等操作.对Servlet应用有了基础了解! 关于Struct2这个经常听说,但是自己没有用过.今天在这学习总结下,目的是 ... 
- Flask-Session 简单使用
			一 知识点 1. 安装 flask 1.0.2 使用Flask-Session,其实必须需要配置的只有这几个地方: 注意!!!!!!: 1. 需要配置的地方1 # flask_session 中的S ... 
