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

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

备注:
ServiceName 属性的值必须始终与记录在安装程序类中的名称相匹配。 如果更改此属性,你还必须更新安装程序类的ServiceName 属性。
设置下列任何一个属性,确定你的服务的运行方式。
属性 设置 CanStop True表示服务将接受请求停止运行;false将阻止服务被停止。CanShutdown True表示当服务所在的计算机关机时服务需要接受通知,启用它来调用 OnShutdown 过程。CanPauseAndContinue True表示服务将接受请求暂停或恢复运行;false将阻止服务被暂停或恢复。CanHandlePowerEvent True表示服务可处理计算机电源状态更改的通知;false将阻止向服务通知这些更改。AutoLog True将在你的服务执行操作时向应用程序事件日志写入信息条目;false将禁用该功能。 有关详细信息,请参阅如何:记录关于服务的信息. 注意:默认情况下,将 AutoLog 设置为true。备注
当 CanStop 或 CanPauseAndContinue 设置为
false时,“服务控制管理器”将禁用相应的菜单选项来停止、暂停或继续该服务。访问代码编辑器,并填写你想要对 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: 在此处添加代码以执行停止服务所需的关闭操作。
}
}
}替代你想要定义功能的任何其他方法。
安装服务。 有关更多信息,请参见 https://www.cnblogs.com/xieyang07/p/10192514.html。
C#创建windows服务(一:初识windows服务)的更多相关文章
- [Windows Server 2012] 初识Windows Server 2012
★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:初次见识Win ...
- [Windows Server 2003] 初识Windows Server 2003
★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com ★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:初次见识W ...
- 创建寄宿在Windows服务中的WCF服务
1.创建Windows服务项目 2.Server1改名为你想要的名称,比如WinServer 3.在项目中新建一个WCF文件夹,用于存放wcf服务文件. 注:在WcfServer类的上面还要添加 [S ...
- .net Windows服务程序和安装程序制作图解 及 VS 2010创建、安装、调试 windows服务(windows service)
.net Windows服务程序和安装程序制作 最近项目中用到window服务程序,以前没接触过,比较陌生,花了两天的时间学习了下,写了个简单的服务,但在制作安装程序的时候,参照网上很多资料,却都制作 ...
- 创建、设置和安装Windows服务
文章大部分内容转自:http://www.cnblogs.com/greatandforever/archive/2008/10/14/1310504.html:和:http://www.cnblog ...
- 初识Windows服务 C#
1.新建Windows服务 2.切换到代码视图,拷入如下代码 该服务以10S的间隔创建 d:/1.txt 文件 using System; using System.Collections.Gen ...
- 使用C#创建Windows服务 并发布Windows 服务
一.开发环境 操作系统:Windows 10 X64 开发环境:VS2015 编程语言:C# .NET版本:.NET Framework 4.0 目标平台:X86 二.创建Windows Servic ...
- C#创建、设置和安装Windows服务
文章大部分内容转自:http://www.cnblogs.com/greatandforever/archive/2008/10/14/1310504.html:和:http://www.cnblog ...
- C#/.NET基于Topshelf创建Windows服务的守护程序作为服务启动的客户端桌面程序不显示UI界面的问题分析和解决方案
本文首发于:码友网--一个专注.NET/.NET Core开发的编程爱好者社区. 文章目录 C#/.NET基于Topshelf创建Windows服务的系列文章目录: C#/.NET基于Topshelf ...
随机推荐
- 算法笔记--CDQ分治 && 整体二分
参考:https://www.luogu.org/blog/Owencodeisking/post-xue-xi-bi-ji-cdq-fen-zhi-hu-zheng-ti-er-fen 前置技能:树 ...
- git ls-remote url,判断 url 是否存在
git ls-remote url,判断 url 是否存在 git ls-remote <url>
- CSS基础学习 16.CSS过渡
- Eclipse创建Servers没有Apache选项
help->install new software加入网址是http://download.eclipse.org/releases/Neon,最后一个是你eclipse的版本.得到一系列的插 ...
- keeping
很多时候我们总是低估了自己,对自己不够狠,从而错过了遇到一个更加优秀的自己.逼自己一把,很多事并不需要多高的智商,仅仅需要你的一份坚持,一个认真的态度,一颗迎难而上的决心
- spark为什么比hadoop的mr要快?
1.前言 Spark是基于内存的计算,而Hadoop是基于磁盘的计算:Spark是一种内存计算技术. 但是事实上,不光Spark是内存计算,Hadoop其实也是内存计算. Spark和Hadoop的根 ...
- bzoj1497: [NOI2006]最大获利(最小割)
传送门 第一眼看去:好难 第二眼:不就是个裸的最大权闭合子图么…… 我们从源点向所有用户连边,容量为收益,用户向自己的中转站连边,容量为INF,中转站向汇点连边,容量为费用 那么总收益-最小割就是答案 ...
- 题解 [BZOJ1832][AHOI2008] 聚会
题面 解析 首先对于其中的两个点\(x,y\)最近的点显然就是他们的\(lca\)(我们把它设为\(p1\)), 然后考虑第三个点\(z\)与\(p1\)的\(lca,p2\). 有以下几种情况: \ ...
- javascript内置对象一: Array数组
在JavaScript中的任何事物,字符串,数组,函数等等都是对象. 理解:浏览器自己封装好的对象,可以直接使用. push /pʊʃ/ 增加 在末尾增加 unshif ...
- IAT表和导入表
1.关于IAT(import address table)表 当exe程序中调用dll中的函数时,反汇编可以看到,call后面并不是跟的实际函数的地址,而是给了一个地址: