一 、 服务简介

  Microsoft Windows 服务(过去称为 NT 服务)允许用户创建可在其自身的 Windows 会话中长时间运行的可执行应用程序。 这些服务可在计算机启动时自动启动,可以暂停和重启,并且不显示任何用户界面。 这些功能使服务非常适合在服务器上使用,或者需要长时间运行的功能(不会影响在同一台计算机上工作的其他用户)的情况。还可以在与登录用户或默认计算机帐户不同的特定用户帐户的安全性上下文中运行服务。

二 、 创建windows服务

  通过  右击项目  >>  添加  >>  windows服务   便可创建服务。

三 、关于windows服务组件

属性

ServiceName

 服务名称
 Language   本的化语言
 Localizable   确定是否将为此对象生成可本的化的代码。
 AutoLog   获取可用于写入应用程序事件日志服务命令调用,如启动和停止通知事件日志。
 CanHandleSessionChangeEvent  
 CanStop   获取或设置一个值,指示它启动后是否可以停止服务。
 CanShutdown   获取或设置一个值,该值在系统关闭时是否应通知服务。
 CanPauseAndContinue   获取或设置一个值,该值指示是否可以暂停和恢复该服务。
 CanHandlePowerEvent   获取或设置一个值,该值指示服务是否可以处理计算机电源状态更改的通知。
 ExitCode   获取或设置该服务的退出代码。
 ServiceHandle  获取服务的服务控制句柄。

要创建功能性服务,你至少必须:

  • 设置 ServiceName 属性。

  • 替代并指定 OnStart 和 OnStop 方法的代码,以自定义你的服务的行为方式。

  1. 在“属性”窗口中,为服务设置 ServiceName 属性。

    备注:

    ServiceName 属性的值必须始终与记录在安装程序类中的名称相匹配。 如果更改此属性,你还必须更新安装程序类的ServiceName 属性。

  2. 设置下列任何一个属性,确定你的服务的运行方式。

    属性 设置
    CanStop True 表示服务将接受请求停止运行;false 将阻止服务被停止。
    CanShutdown True 表示当服务所在的计算机关机时服务需要接受通知,启用它来调用 OnShutdown 过程。
    CanPauseAndContinue True 表示服务将接受请求暂停或恢复运行;false 将阻止服务被暂停或恢复。
    CanHandlePowerEvent True 表示服务可处理计算机电源状态更改的通知;false 将阻止向服务通知这些更改。
    AutoLog True 将在你的服务执行操作时向应用程序事件日志写入信息条目;false 将禁用该功能。 有关详细信息,请参阅如何:记录关于服务的信息. 注意:默认情况下,将 AutoLog 设置为 true

    备注

    当 CanStop 或 CanPauseAndContinue 设置为 false 时,“服务控制管理器”将禁用相应的菜单选项来停止、暂停或继续该服务。

  3. 访问代码编辑器,并填写你想要对 OnStart 和 OnStop 过程的处理逻辑代码。如下:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Diagnostics;
    using System.Linq;
    using System.ServiceProcess;
    using System.Text;
    using System.Threading.Tasks; namespace ConsoleApp1
    {
    partial class Service1 : ServiceBase
    {
    public Service1()
    {
    InitializeComponent();
    } protected override void OnStart(string[] args)
    {
    // TODO: 在此处添加代码以启动服务。
    } protected override void OnStop()
    {
    // TODO: 在此处添加代码以执行停止服务所需的关闭操作。
    }
    }
    }
  4. 替代你想要定义功能的任何其他方法。

  5. 安装服务。 有关更多信息,请参见 https://www.cnblogs.com/xieyang07/p/10192514.html

C#创建windows服务(一:初识windows服务)的更多相关文章

  1. [Windows Server 2012] 初识Windows Server 2012

    ★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:初次见识Win ...

  2. [Windows Server 2003] 初识Windows Server 2003

    ★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com ★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:初次见识W ...

  3. 创建寄宿在Windows服务中的WCF服务

    1.创建Windows服务项目 2.Server1改名为你想要的名称,比如WinServer 3.在项目中新建一个WCF文件夹,用于存放wcf服务文件. 注:在WcfServer类的上面还要添加 [S ...

  4. .net Windows服务程序和安装程序制作图解 及 VS 2010创建、安装、调试 windows服务(windows service)

    .net Windows服务程序和安装程序制作 最近项目中用到window服务程序,以前没接触过,比较陌生,花了两天的时间学习了下,写了个简单的服务,但在制作安装程序的时候,参照网上很多资料,却都制作 ...

  5. 创建、设置和安装Windows服务

    文章大部分内容转自:http://www.cnblogs.com/greatandforever/archive/2008/10/14/1310504.html:和:http://www.cnblog ...

  6. 初识Windows服务 C#

    1.新建Windows服务   2.切换到代码视图,拷入如下代码 该服务以10S的间隔创建 d:/1.txt 文件 using System; using System.Collections.Gen ...

  7. 使用C#创建Windows服务 并发布Windows 服务

    一.开发环境 操作系统:Windows 10 X64 开发环境:VS2015 编程语言:C# .NET版本:.NET Framework 4.0 目标平台:X86 二.创建Windows Servic ...

  8. C#创建、设置和安装Windows服务

    文章大部分内容转自:http://www.cnblogs.com/greatandforever/archive/2008/10/14/1310504.html:和:http://www.cnblog ...

  9. C#/.NET基于Topshelf创建Windows服务的守护程序作为服务启动的客户端桌面程序不显示UI界面的问题分析和解决方案

    本文首发于:码友网--一个专注.NET/.NET Core开发的编程爱好者社区. 文章目录 C#/.NET基于Topshelf创建Windows服务的系列文章目录: C#/.NET基于Topshelf ...

随机推荐

  1. java中静态代码块,非静态代码块,构造函数

    关于静态代码块 静态代码块的写法: static { System.out.println("我是静态代码块"); } 静态代码块的特点: 1.执行优先级高于非静态的初始化块,它会 ...

  2. java线程基础巩固---创建并启动线程

    对于java的并发编程方面的东东,不管是面试还是实际工作开发都是非常重要的,而往往只要涉及到并发相关的东东有点让人觉得有点难,而实际工作中涉及到并发可能就是简单的用下同步块.上锁之类的一些简单的操作, ...

  3. 用idea操作svn

    使用SVN前提必须安装好服务端和客户端,或者知道服务端的url才能对服务器中的文件进行操作. 服务端:SVN service 客户端:TortoiseSVN 提交 第一步:确认SVN 服务器是否开启 ...

  4. poj2942 Knights of the Round Table[点双+二分图染色]

    首先转化条件,把无仇恨的人连边,然后转化成了求有哪些点不在任何一个奇环中. 一个奇环肯定是一个点双,所以想到处理出所有点双,但是也可能有的点双是一个偶环,有的可能是偶环和奇环混杂,不好判. 考察奇环性 ...

  5. BZOJ 3772: 精神污染 (dfs序+树状数组)

    跟 BZOJ 4009: [HNOI2015]接水果一样- CODE #include <set> #include <queue> #include <cctype&g ...

  6. Visual Stdio的使用

    以下基于vs2017版本 part 1: 问题及解决 1.命令窗口一闪而过 右键项目,选择属性--连接器---系统---子系统---选择控制台. 2.修改默认启动项目 右键解决方案,选择属性,选择当前 ...

  7. 转:后置处理器JSON Extractor 提取json的多个值

    json串 []表示对象组成的数组,{}表示对象. 对象里包含多个 "属性":属性值.属性值可以是值,或数组,或对象. JSON Extractor使用json path表达式匹配 ...

  8. When you want to succeed as bad as you wanna breathe, then you’ll be successful.

    上周末登了次山,回来就各种矫情犯懒.今天周四一周又要完蛋,我发现自己真的是对时间流逝无可奈何.然后中午看了把小码哥网站还有MJ博客什么的,各种首期班大爆照,心中羞愧无比.年纪大也不能放弃自己啊,要不人 ...

  9. mysql保留最新数据

    直接上sql语句,亲测可用: DELETE tb FROM lotus_system_log AS tb ,(SELECT pk_id FROM lotus_system_log ORDER BY p ...

  10. ARTS打卡计划第十一周

    Algorithms: https://leetcode-cn.com/problems/linked-list-cycle/ 链表环. Review: “What I learned from do ...