.NET Core 使用Topshelf方式创建Windows服务
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服务相关推荐
- .NET 使用Topshelf方式创建Windows服务
阅读目录 安装 代码 部署服务 调试服务 Topshelf是一个.NET Standard库,它消除了在.NET Framework和.NET Core中创建Windows服务的那些麻烦. 安装 In ...
- 使用Topshelf轻松创建Windows服务
目录 介绍 入门 示例1-基本的winservice 所需的NuGet软件包 Topshelf Bootstrap.cs 示例2-Scheduledservice 所需的NuGet软件包 Topshe ...
- 使用Topshelf快捷创建Windows服务
Topshelf相关 GitHub地址: https://github.com/Topshelf/Topshelf 官方文档 :http://docs.topshelf-project.com/en/ ...
- 使用.NET Core创建Windows服务(二) - 使用Topshelf方式
原文:Creating Windows Services In .NET Core – Part 2 – The "Topshelf" Way 作者:Dotnet Core Tut ...
- 使用.NET Core创建Windows服务(二) - 使用Topshelf方式
使用.NET Core创建Windows服务 使用微软推荐方式 使用Topshelf方式 在前一篇文章中,我给大家介绍了,如何基于微软推荐方式使用.NET Core创建Windows服务.我们发现使用 ...
- 使用.NET Core创建Windows服务 - 使用.NET Core工作器方式
原文:Creating Windows Services In .NET Core – Part 3 – The ".NET Core Worker" Way 作者:Dotnet ...
- 使用.NET Core创建Windows服务(一) - 使用官方推荐方式
原文:Creating Windows Services In .NET Core – Part 1 – The "Microsoft" Way 创建Windows服务来运行批处理 ...
- (转)创建Windows服务(Windows Services)N种方式总结
转自:http://www.cnblogs.com/aierong/archive/2012/05/28/2521409.html 最近由于工作需要,写了一些windows服务程序,有一些经验,我现在 ...
- 使用Topshelf创建Windows服务
一.实现效果 使用Topshelf创建Windows服务项目工程下载 二.Topshelf简介 2.1.Topshelf介绍 TopShelf是一个托管使用.NET框架编写的服务的框架,是创建wind ...
最新文章
- java三角形创建子类_如何创建子类,以便参数属于Java中的子类类型
- CloudCompare二次开发编译篇(内附交流群更新通知)
- mupdf不支持x64_ARM版Win10用户狂喜 微软全新补丁让应用不再不兼容
- mysql范式与反范式_给女同事讲解MySQL数据库范式与反范式,她直夸我“技术好”...
- docker应用到生产环境的前提
- myeclipse深色模式_完善深色模式的调色板
- jquery mobile页面切换效果(Flip toggle switch)(注:jQuery移动使用的数据属性的列表。 )...
- LINQ:进阶 - LINQ 标准查询操作概述
- C语言试题六十之请编写函数fun,计算并输出下列级数和:s=1/1*2+1/2*3+…+1/n(n+1)
- 编写Shell脚本(批处理,一次执行多条命令)
- 快速入门Pytorch(1)--安装、张量以及梯度
- oracle 查出所有空表,Oracle查看某个用户上的所有空表
- 47 张图带你 MySQL 进阶
- python输出输入的字符串_python笔记3-输出输入、字符串格式化
- C++中sizeof和strlen
- 监控某个dll被修改_浅谈动力环境监控系统技术标准
- 廖雪峰python教程-Python 2.7教程
- 两路共享LSTM时序数据预测实战+界面可视化应用
- 吉投资管系统搭建仅用于盘手培训
- 【电路】PT1000/PT100温度采集电路