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
using System.Timers;
using Topshelf;
 
namespace TopShelfConsoleApplication
{
     public class TownCrier
     {
         TopshelfClass topshelfClass =  new TopshelfClass();
         readonly Timer _timer;
         public TownCrier()
         {
             //设定了一个 1000 毫秒的服务执行间隔  
             _timer =  new Timer(1000) { AutoReset =  true };
             _timer.Elapsed +=  new ElapsedEventHandler(topshelfClass.Test);
         }
         public void Start() { _timer.Start(); }
         public void Stop() { _timer.Stop(); }
     }
 
     public class Program
     {
         public static void Main()
         {
             HostFactory.Run(x =>
             {
                 x.Service<TownCrier>(s =>
                 {
                     s.ConstructUsing(name =>  new TownCrier());
                     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
using System;
using System.IO;
using System.Timers;
 
namespace TopShelfConsoleApplication
{
     public class TopshelfClass
     {
         public void Test( object source, ElapsedEventArgs e)
         {
             string path =  "F:\\TopshelfTest\\TopshelfTest.txt" ;
             FileStream fs =  new FileStream(path, FileMode.Append);
             StreamWriter sw =  new StreamWriter(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  install
start:ConsoleApplication1.exe start ,执行后服务被启动
stop:ConsoleApplication1.exe stop ,执行后服务被停止
uninstall:ConsoleApplication1.exe uninstall,执行后服务被卸载
-instance:  ConsoleApplication1.exe -instance  " test1" install

5、测试服务运行,开启两个服务,结果如下:

 

 

 

至此,简单的topshelf服务使用就完成咯~~~~~

 

转载于:https://www.cnblogs.com/King-JJ/p/7083752.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值