Topshelf是一个.NET Standard库,它消除了在.NET Framework和.NET Core中创建Windows服务的那些麻烦。

安装

Install-Package Topshelf

代码

using System;
using System.Collections.Generic;
using System.Text;
using Topshelf;namespace ConsoleApp2222
{public class LoggingService : ServiceControl{private void Log(string logMessage){Console.WriteLine(logMessage);}public bool Start(HostControl hostControl){Log("Starting");return true;}public bool Stop(HostControl hostControl){Log("Stopping");return true;}}
}

在Program.cs文件的Main方法中

1、服务的名称

2、服务是否自动启动

3、服务崩溃之后的重启时间

using System;
using Topshelf;namespace ConsoleApp2222
{internal class Program{private static void Main(string[] args){HostFactory.Run(x =>{x.Service<LoggingService>();x.EnableServiceRecovery(r => r.RestartService(TimeSpan.FromSeconds(10)));x.SetServiceName("TestService");x.StartAutomatically();});}}
}

部署服务

ConsoleApp2222.exe install
ConsoleApp2222.exe start

调试服务

如果我们的服务代码已经在Visual Studio中打开了,我们就可以直接启动调试。Topshelf会模拟在控制台中启动服务。我们应该能在控制台中看到以下的消息。

这确实符合了我们的需求。它启动了我们的服务,并像真正的Windows服务一样在后台运行。我们可以像往常一样设置断点,基本上它遵循的流程和正常安装的服务一样。

我们可以通过ctrl+c, 来关闭我们的应用,但是在运行服务执行Stop方法之前,它是不能被关闭的,这使我们可以调试服务的关闭流程。与调试指令和配置标志相比,这要容易的多。

这里需要注意一个问题。如果你收到的以下内容的消息:

这意味着你尝试调试的服务实际上已经作为Windows服务被安装在系统中了,你需要停止(不需要卸载)这个正在运行的服务,才可以正常调试。

参考文档

https://topshelf.readthedocs.io/en/latest/configuration/config_api.html

https://github.com/Topshelf/Topshelf

http://topshelf-project.com/

.NET Core 使用Topshelf方式创建Windows服务相关推荐

  1. .NET 使用Topshelf方式创建Windows服务

    阅读目录 安装 代码 部署服务 调试服务 Topshelf是一个.NET Standard库,它消除了在.NET Framework和.NET Core中创建Windows服务的那些麻烦. 安装 In ...

  2. 使用Topshelf轻松创建Windows服务

    目录 介绍 入门 示例1-基本的winservice 所需的NuGet软件包 Topshelf Bootstrap.cs 示例2-Scheduledservice 所需的NuGet软件包 Topshe ...

  3. 使用Topshelf快捷创建Windows服务

    Topshelf相关 GitHub地址: https://github.com/Topshelf/Topshelf 官方文档 :http://docs.topshelf-project.com/en/ ...

  4. 使用.NET Core创建Windows服务(二) - 使用Topshelf方式

    原文:Creating Windows Services In .NET Core – Part 2 – The "Topshelf" Way 作者:Dotnet Core Tut ...

  5. 使用.NET Core创建Windows服务(二) - 使用Topshelf方式

    使用.NET Core创建Windows服务 使用微软推荐方式 使用Topshelf方式 在前一篇文章中,我给大家介绍了,如何基于微软推荐方式使用.NET Core创建Windows服务.我们发现使用 ...

  6. 使用.NET Core创建Windows服务 - 使用.NET Core工作器方式

    原文:Creating Windows Services In .NET Core – Part 3 – The ".NET Core Worker" Way 作者:Dotnet ...

  7. 使用.NET Core创建Windows服务(一) - 使用官方推荐方式

    原文:Creating Windows Services In .NET Core – Part 1 – The "Microsoft" Way 创建Windows服务来运行批处理 ...

  8. (转)创建Windows服务(Windows Services)N种方式总结

    转自:http://www.cnblogs.com/aierong/archive/2012/05/28/2521409.html 最近由于工作需要,写了一些windows服务程序,有一些经验,我现在 ...

  9. 使用Topshelf创建Windows服务

    一.实现效果 使用Topshelf创建Windows服务项目工程下载 二.Topshelf简介 2.1.Topshelf介绍 TopShelf是一个托管使用.NET框架编写的服务的框架,是创建wind ...

最新文章

  1. java三角形创建子类_如何创建子类,以便参数属于Java中的子类类型
  2. CloudCompare二次开发编译篇(内附交流群更新通知)
  3. mupdf不支持x64_ARM版Win10用户狂喜 微软全新补丁让应用不再不兼容
  4. mysql范式与反范式_给女同事讲解MySQL数据库范式与反范式,她直夸我“技术好”...
  5. docker应用到生产环境的前提
  6. myeclipse深色模式_完善深色模式的调色板
  7. jquery mobile页面切换效果(Flip toggle switch)(注:jQuery移动使用的数据属性的列表。 )...
  8. LINQ:进阶 - LINQ 标准查询操作概述
  9. C语言试题六十之请编写函数fun,计算并输出下列级数和:s=1/1*2+1/2*3+…+1/n(n+1)
  10. 编写Shell脚本(批处理,一次执行多条命令)
  11. 快速入门Pytorch(1)--安装、张量以及梯度
  12. oracle 查出所有空表,Oracle查看某个用户上的所有空表
  13. 47 张图带你 MySQL 进阶
  14. python输出输入的字符串_python笔记3-输出输入、字符串格式化
  15. C++中sizeof和strlen
  16. 监控某个dll被修改_浅谈动力环境监控系统技术标准
  17. 廖雪峰python教程-Python 2.7教程
  18. 两路共享LSTM时序数据预测实战+界面可视化应用
  19. 吉投资管系统搭建仅用于盘手培训
  20. 【电路】PT1000/PT100温度采集电路

热门文章

  1. Python基础学习总结__Day3
  2. zip4j实现多线程压缩
  3. static作用:静态变量的生存周期和作用域
  4. Integer源码解析
  5. C语言程序设计第三次作业
  6. android获取手机机型、厂商、deviceID基本信息
  7. 天天写日记争当文艺青年 2014-5-13
  8. Unity3D脚本的生命周期(执行顺序)
  9. 最新版富文本编辑器UEditor操作教程
  10. js模版引擎handlebars.js实用教程——with-终极this应用