华域联盟 .Net .NET Core使用Topshelf方式创建Windows服务的全过程记录

.NET Core使用Topshelf方式创建Windows服务的全过程记录

.NET Core使用Topshelf方式创建Windows服务的全过程记录
 更新时间:2020年11月04日 14:18:04   作者:conan5566  

这篇文章主要给大家介绍了关于.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服务被安装在系统中了,你需要停止(不需要卸载)这个正在运行的服务,才可以正常调试。
参考文档
topshelf.readthedocs.io/en/latest/configuration/config_api.html
github.com/Topshelf/Topshelf
topshelf-project.com/
总结
到此这篇关于.NET Core使用Topshelf方式创建Windows服务的文章就介绍到这了,更多相关.NET Core用Topshelf创建Windows服务内容请搜索华域联盟以前的文章或继续浏览下面的相关文章希望大家以后多多支持华域联盟!

您可能感兴趣的文章:.net core部署到windows服务上的完整步骤用.NET创建Windows服务的方法使用.NET Core3.0创建一个Windows服务的方法.Net Core WebApi部署到Windows服务器上的步骤

.net
core
topshelf

相关文章
MVC使用Controller代替Filter完成登录验证(Session校验)学习笔这篇文章主要介绍了MVC使用Controller代替Filter完成登录验证即Session校验,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 2016-09-09
Web.config(应用程序的配置信息)总结Web.config文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NET Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中,接下来详细介绍一下配置情况,感兴趣的朋友可以了解下 2013-01-01
浅析ASP.NET万能JSON解析器这篇文章主要是对ASP.NET万能JSON解析器进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助 2013-12-12
基于asp.net下使用jquery实现ajax的解决方法本文以最简单的方法为新手示范如何使用jquery实现ajax技术(所以本文是专为新手所写,老鸟勿喷,大神此处省略一万字)。至于什么是jquery什么是ajax,自己谷歌去 2013-05-05
ASP.NET回车提交事件浅析ASP.NET回车提交事件是什么呢?是如何实现的呢?ASP.NET回车提交事件的执行需要注意什么细节呢?那么本文就向你介绍详细的内容,希望对你有所帮助 2012-01-01
ASP.NET The system cannot find the file specified解决办法这篇文章主要介绍了ASP.NET The system cannot find the file specified解决办法的相关资料,需要的朋友可以参考下 2016-11-11
ASP.NET MVC中的AJAX应用这篇文章主要介绍了ASP.NET MVC中的AJAX应用的相关资料,需要的朋友可以参考下 2014-10-10
基于Asp.Net MVC4 Bundle捆绑压缩技术的介绍本篇文章,小编将为大家介绍,Asp.Net MVC4 Bundle捆绑压缩技术,有需要的朋友可以参考一下
2013-04-04
ASP.NET(C#) 读取EXCEL另加解决日期问题的方法分享这篇文章介绍了ASP.NET(C#) 读取EXCEL另加解决日期问题的方法,有需要的朋友可以参考一下 2013-11-11
asp.net 面试 笔试题目[附答案]收集并整理自网络,实时更新,希望大家找到合适的工作。 2009-05-05

最新评论

本文由 华域联盟 原创撰写:华域联盟 » .NET Core使用Topshelf方式创建Windows服务的全过程记录

转载请保留出处和原文链接:https://www.cnhackhy.com/5037.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者:

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部