zoukankan      html  css  js  c++  java
  • C# 使用TopShelf实现Windows服务部署

    一、TopShelf介绍

        topShelf是创建Windows服务的一种方式,可以方便管理应用服务,最大广泛应用于,数据实时接收,定时推送等。

    二、TopShelf使用

        1、安装 TopShelf程序包

          

       2、编码 

     1 HostFactory.Run(x =>
     2             {
     3                 x.UseLog4Net();
     4                 x.Service<TownCrier>(s =>
     5                 {
     6                     s.ConstructUsing(name => new TownCrier());
     7                     s.WhenStarted(tc => tc.Start());
     8                     s.WhenStopped(tc => tc.Stop());
     9                 });
    10                 x.RunAsLocalSystem();
    11                 x.SetDescription("QuartzJob任务定时发送");
    12                 x.SetDisplayName("QuartzJob");
    13                 x.SetServiceName("QuartzJob");
    14 
    15                 x.EnablePauseAndContinue();
    16             });

           其中Run方法的回调参数方法,在运行时执行,方法内是一些配置信息。

           其中TownCrier类是我们服务实现类,服务启动时通过WhenStarted调用对应实现的OnStart,停止一样。

           RunAsLocalSystem()表示以本地系统账号运行,可选的还有网络服务和本地服务账号。

           SetDescription("Topshelf测试例子"); 设置服务的描述

           SetDisplayName("TopshelfExample"); 设置服务的显示名称

           x.SetServiceName("TopshelfExample"); 设置服务的名称

          TownCrier服务类:

     1 public class TownCrier
     2     {
     3         readonly Timer _timer;
     4         public TownCrier()
     5         {
     6             _timer = new Timer(1000) { AutoReset = true };
     7             _timer.Elapsed += (sender, eventArgs) => Console.WriteLine("---------------------DateTime: {0} ------------------- ", DateTime.Now);
     8         }
     9         public void Start() { _timer.Start(); }
    10         public void Stop() { _timer.Stop(); }
    11     }

        3、安装

        使用管理员打开CMD窗口

        

         安装服务 server.exe install

         启动服务 server.exe start

         停止服务 server.exe stop

         卸载服务 server.exe uninstall

  • 相关阅读:
    .NET Core SignalR 和 .NET SignalR 区别
    MySQL 连接出现 Authentication plugin 'caching_sha2_password' cannot be loaded
    Geohash 基本知识及 .NET 下计算相邻8个区域编码
    ASP.NET 下配置请求大小、请求时间等参数
    .NET Core、EF、Dapper、MySQL 多种方式实现数据库操作(动态注册实体类)
    .NET Core 开发常用命令(VS Code)
    ping
    exec与xargs区别
    doc转docx
    读取docx表格中的信息
  • 原文地址:https://www.cnblogs.com/ZhengHengWU/p/11686087.html
Copyright © 2011-2022 走看看