Vici WinService 是 Windows平台下使用C#开发的轻量级用于创建,删除服务的类库,您只需简单的几行代码即可实现多线程异步服务的创建,删除,运行
废话不多说,直接上代码
/******************************************************************
* 创建人:HTL
* 创建时间:2015-5-12 14:09:39
* 说明:使用Vici WinService组件创建的Windows服务
* Email:huangyuan413026@163.com
*******************************************************************/
using System;
using System.Text;
using NLog;//引用日志组件
using Vici.WinService;//引用组件
using System.ServiceProcess;//引用系统组件
namespace HTL.TestService
{
#region 日志操作类
/// <summary>
/// 写入日志
/// </summary>
class Log
{
public static Logger _log = LogManager.GetCurrentClassLogger();
public static Logger GetLog
{
get { return _log; }
}
}
#endregion
#region 自定义服务类
/// <summary>
/// 自定义服务类
/// </summary>
class TestService : Service
{
public TestService()
: base(new ServiceInfo("Test_server"))//服务的名称和显示名称
{
ServiceTasks.Add(new TestServiceTask());
}
}
#endregion
#region 自定义服务中任务类
/// <summary>
/// 循环执行服务中任务
/// </summary>
class TestServiceTask : CyclicServiceTask
{
/// <summary>
/// 30秒异步执行一次任务
/// </summary>
public TestServiceTask() : base(TimeSpan.FromSeconds(), false) { }
public static NLog.Logger Logger = NLog.LogManager.GetCurrentClassLogger();
protected override void RunTask()
{
Log.GetLog.Info("自定义服务任务正在工作中.....");
}
}
#endregion
static class Program
{
static void Main(params string[] parameters)
{
Log.GetLog.Info("开始运行程序");
TestService service = new TestService();
//自动运行
service.ServiceInfo.ServiceStartMode = ServiceStartMode.Automatic;
if (parameters.Length > )
{
string option = parameters[].ToLower();
switch (option)
{
case "/console":
{
service.RunConsole();
Log.GetLog.Info("运行控制台程序");
} return;
case "/install":
{
service.Install();
Log.GetLog.Info("安装服务,自动运行");
} return;
case "/uninstall":
{
service.UnInstall();
Log.GetLog.Info("开始卸载服务");
} return;
}
}
service.Run();
}
}
}
 
如何运行?
 
1.在cmd命令行下切换到exe生成目录
2.运行exe文件 ,需要添加运行参数(见上面的代码),运行后关闭下面的命令行不影响服务的执行
3.安装/卸载服务
4.启动"Test_server"服务
5.查看服务执行的任务日志(每30秒执行一次,见上面的代码)
 
 
参考:
 
其他参考:
 

C# 使用Vici WinService组件来创建Windows服务的更多相关文章

  1. 使用 Topshelf 组件一步一步创建 Windows 服务 (2) 使用Quartz.net 调度

    上一篇说了如何使用 Topshelf 组件快速创建Windows服务,接下来介绍如何使用 Quartz.net 关于Quartz.net的好处,网上搜索都是一大把一大把的,我就不再多介绍. 先介绍需要 ...

  2. 使用Topshelf组件 一步一步创建 Windows 服务

    我们先来介绍一下使用它的好处,以下论述参考自其他大神. topshelf是创建windows服务的一种方式,相比原生实现ServiceBase.Install.Installer更为简单方便, 我们只 ...

  3. windows服务搭建(VS2019创建Windows服务不显示安装组件)

    1.创建windows服务应用 2.右键查看代码 3.写个计时器Timer  using System.Timers; 如上图,按tab键快速操作  会自动创建一个委托 改为下边的方式,打印日志来记录 ...

  4. C# 创建Windows服务

    创建windows服务项目   2 右键点击Service1.cs,查看代码, 用于编写操作逻辑代码 3 代码中OnStart用于执行服务事件,一般采用线程方式执行方法,便于隔一段事件执行一回 END ...

  5. 用C#创建Windows服务(Windows Services)

    用C#创建Windows服务(Windows Services) 学习:  第一步:创建服务框架 创建一个新的 Windows 服务项目,可以从Visual C# 工程中选取 Windows 服务(W ...

  6. [转]C#创建Windows服务与安装

    本文档用于创建windows服务说明,使用vs2010系统平台 创建项目 1 创建windows服务项目 2 右键点击Service1.cs,查看代码, 用于编写操作逻辑代码 3 代码中OnStart ...

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

    最近由于工作需要,写了一些windows服务程序,有一些经验,我现在总结写出来.目前我知道的创建创建Windows服务有3种方式:a.利用.net框架类ServiceBaseb.利用组件Topshel ...

  8. C# 创建Windows服务。服务功能:定时操作数据库 (转)

    C# 创建Windows服务.服务功能:定时操作数据库 一.创建window服务 1.新建项目-->选择Windows服务.默认生成文件包括Program.cs,Service1.cs 2.在S ...

  9. C#创建Windows服务与安装-图解

    1.创建windows服务项目

随机推荐

  1. [ 原创 ] git使用技巧

    Git的使用--如何将本地项目上传到Github Git分支图介绍 https://www.cnblogs.com/cheneasternsun/p/5952830.html https://www. ...

  2. Spring Boot 基础配置

    之前简单接触了一些Spring Boot ,并且写了一个简单的 Demo .本文就来简单学习一下 Spring Boot 的基础配置. 一.Spring Boot 项目入口 上文中有写到,Spring ...

  3. QT学习笔记7:C++函数默认参数

    C++中允许为函数提供默认参数,又名缺省参数. 使用默认参数时的注意事项: ① 有函数声明(原型)时,默认参数可以放在函数声明或者定义中,但只能放在二者之一.建议放在函数声明中. double sqr ...

  4. java知识点总结

    一.java 1.容器 1)List Java中ArrayList和LinkedList区别 2)Set 理解HashSet及使用 HashMap和HashSet的区别 3Map HashMap的容量 ...

  5. vijos p1768 数学

    链接:点我 预处理:b[i][j]表示a[1] ... a[j]中比a[i]小的数的数量. 设 int get_lower_count(int b[], int l, int r) { return ...

  6. Git_创建标签

    在Git中打标签非常简单,首先,切换到需要打标签的分支上: $ git branch * dev master $ git checkout master Switched to branch 'ma ...

  7. Polly简介 — 1. 故障处理策略

    Polly 是 .Net 下的一套瞬时故障处理及恢复的函式库,可让开发者以fluent及线程安全的方式来应用诸如Retry.Circuit Breaker.Timeout.Bulkhead Isola ...

  8. 背景建模或前景检測之PBAS

    申明,本文非笔者原创,原文转载自:http://blog.csdn.net/kcust/article/details/9931575 Pixel-Based Adaptive Segmenter(P ...

  9. SyncThingWin -- Run syncthing as a windows service

    SyncThingWin Auto restart and minor bug fixes bloones released this on 23 Dec 2014 There is now an a ...

  10. 主动找智能钥匙 PKE取代RKE是大势所趋

    http://taobao.autos.cn.yahoo.com/ypen/20111128/725214.html 近日,在车友论坛上的一个热帖<悲喜交加:1分钟就能复制汽车遥控器?>在 ...