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. Standard NSD file

    %pool: pool=system blockSize=256K layoutMap=cluster allowWriteAffinity=no %pool: pool=datapool block ...

  2. Django 模板中使用css, javascript

    Django 模板中使用css, javascript (r'^css/(?Ppath.*)$', 'django.views.static.serve', {'document_root': '/v ...

  3. django定时任务

    1.celery流程图: Celery的架构由三部分组成,消息中间件(message broker),任务执行单元(worker)和任务执行结果存储(task result store)组成 2.使用 ...

  4. HTML 5 <form> enctype 属性

    值 描述 application/x-www-form-urlencoded 在发送前对所有字符进行编码(默认). multipart/form-data 不对字符编码.当使用有文件上传控件的表单时, ...

  5. 数据预处理:标准化(Standardization)

    注:本文是人工智能研究网的学习笔记 常用的数据预处理方式 Standardization, or mean removal and variance scaling Normalization: sc ...

  6. 【洛谷】1852:[国家集训队]跳跳棋【LCA】【倍增?】

    P1852 [国家集训队]跳跳棋 题目背景 原<奇怪的字符串>请前往 P2543 题目描述 跳跳棋是在一条数轴上进行的.棋子只能摆在整点上.每个点不能摆超过一个棋子. 我们用跳跳棋来做一个 ...

  7. 【BZOJ】4152: [AMPPZ2014]The Captain【SLF优化Spfa】

    4152: [AMPPZ2014]The Captain Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 2107  Solved: 820[Submi ...

  8. Ajax 的概念及过程?Ajax 的交互模型?同步和异步的区别?如何解决跨域问题?

    Ajax 是什么: 1)  通过异步模式,提升了用户体验 2)  优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用 3)  Ajax 在客户端运行,承担了一部分本来由服务器承担的工 ...

  9. Codeforces Round #354 (Div. 2) C. Vasya and String 二分

    C. Vasya and String 题目连接: http://www.codeforces.com/contest/676/problem/C Description High school st ...

  10. Git_搭建Git服务器

    在远程仓库一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改. GitHub就是一个免费托管开源代码的远程仓库.但是对于某些视源代码如生命的商业公司来说,既不想 ...