Topshelf 搭建 Windows 服务
C# Topshelf 搭建 Windows 服务
Topshelf 是一个用来部署基于.NET Framework 开发的服务的框架。简化服务创建于部署过程,并且支持控制台应用程序部署为服务。本文基于 .net core 控制台应用程序部署为服务(.net Framework 可用)。
第一步:创建名为 TopshelfDemo 的控制台应用程序
第二步:通过 Nuget 安装 Topshelf 包
第三步:Toshelf 配置,代码并不多下面都有注释
using System;
using Topshelf;namespace TopshelfDemo
{class Program{static void Main(string[] args){try{ // 配置和运行宿主服务HostFactory.Run(x => //1{x.Service<Service>(s => //2{// 指定服务类型。这里设置为 Services.ConstructUsing(name => new Service()); //3// 当服务启动后执行什么s.WhenStarted(tc => tc.Start()); //4// 当服务停止后执行什么s.WhenStopped(tc => tc.Stop()); //5});// 服务用本地系统账号来运行x.RunAsLocalSystem(); //6// 服务描述信息x.SetDescription("我的项目服务"); //7// 服务显示名称x.SetDisplayName("MyProjectServiceShowName"); //8// 服务名称x.SetServiceName("MyProjectService"); //9 }); }catch (Exception ex){Console.WriteLine(ex);}}}public class Service{ public void Start() {//To do something}public void Stop() {//To do something}}
}
第四步:安装服务
确保项目正常生成,然后通过管理员权限打开 cmd 命令窗口,找到项目所在的 Debug 目录,输入命令:TopshelfDemo.exe install或者双击文件
如果是使用 .net core 的小伙伴你会发现 Debug下压根没有 TopshelfDemo.exe ,这不是扯淡呢么,别急往下看。
由于 .net core 依赖 runtimes 所以我们需要发布以下程序,并且选择独立项目就ok啦。
到这里我出现了问题提示 TopshelfDemo.exe install 无法安装,根据提示执行./TopshelfDemo.exe install
就安装ok。
失败提示信息:The ** service can only be installed as an administrator
解决方案:右击**.exe文件,属性-》兼容性-》勾选以管理员身份运行
也可以通过 sc delete MyProjectService 进行删除
后面可以搭配Quartz
实现任务调度
Topshelf 搭建 Windows 服务相关推荐
- c# Topshelf 搭建 Windows 服务
用本文基于 .net core 控制台应用程序部署为服务(.net Framework 可用). 一.创建.NET Core的控制台应 第二步:通过 Nuget 安装 Topshelf 包. 三.代码 ...
- C#/.NET基于Topshelf创建Windows服务的守护程序作为服务启动的客户端桌面程序不显示UI界面的问题分析和解决方案
C#/.NET基于Topshelf创建Windows服务的守护程序作为服务启动的客户端桌面程序不显示UI界面的问题分析和解决方案 参考文章: (1)C#/.NET基于Topshelf创建Windows ...
- 使用Topshelf创建Windows服务
一.实现效果 使用Topshelf创建Windows服务项目工程下载 二.Topshelf简介 2.1.Topshelf介绍 TopShelf是一个托管使用.NET框架编写的服务的框架,是创建wind ...
- Quartz+TopShelf实现Windows服务作业调度 (转载)
Quartz:首先我贴出来了两段代码(下方),可以看出,首先会根据配置文件(quartz.config),包装出一个Quartz.Core.QuartzScheduler instance,这是一个调 ...
- 如何使用Topshelf管理Windows服务
一.官方网站及源码下载 1.官方网站:http://topshelf-project.com/ 2.源码下载:https://github.com/Topshelf/Topshelf/download ...
- 使用Topshelf管理Windows服务
目的:以控制台方式开发Windows服务程序,调试部署方便. https://www.cnblogs.com/itjeff/p/8316244.html https://www.cnblogs.com ...
- .net 中用TopShelf 实现windows服务
1.TopShelf 是一个开源的跨平台的宿主服务框架,支持Windows和Mono,只需要几行代码就可以构建一个很方便使用的服务宿主.TopShelf 安装不需要依赖 .net framework ...
- 利用Topshelf搭建Windowns服务实现定期自动添加数据逻辑和原理
一.Topshelf基本配置 using System; using System.Collections.Generic; using System.Linq; using System.Text; ...
- Topshelf创建Windows服务
入门例子 using log4net; using System; using System.Timers; using Topshelf;namespace ConsoleAppTest {clas ...
最新文章
- php扩展开发中文教程.pdf,PHP扩展开发系列教程-1
- NBT:Rob Knight-微生物组数据降维新方法
- 企业级 CICD 工具部署 Serverless 应用的落地实践
- 内中断---汇编学习笔记
- struts2获取请求参数的三种方式及传递给JSP参数的方式
- C++primer 13.6.2节练习
- asyncdata 获取参数_nuxt的asyncData发送post请求如何传递FormData形式的参数
- 更新k8s镜像版本的三种方式
- http发送16进制报文_图解HTTP 第三章HTTP报文内的HTTP信息
- android camera预览帧,android camera2处理每一帧并显示其预览
- 可视化设计的时候应该注意什么
- 高亮显示不区分大小写的关键字——ASP
- Linux下常用的串口助手 —— minicom、putty、cutecom
- k8s1.23 Ingress-nginx实操
- 模拟ATM机存取款管理系统设计(C++)
- php农历生日计算,php实现的农历算法实例
- 拉钩网前端项目实战04
- vant 引用Lazyload报错Lazyload
- 搜你所想(去除最新版本电驴搜索限制方法共享)
- Linux常用命令使用---su 与su -