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 ...
随机推荐
- ClassLoader源码分析与实例剖析
在之前已经对类加载器做了不少实验了,这次主要是来分析一下ClassLoader的源码,当然主要是先从理解官方给它的注释开始,为之后自定义类加载器打好坚石的基础,下面开始: 而从类的层次结构来看也能感受 ...
- PHP配置文件(php.ini)详解
[PHP] ; PHP还是一个不断发展的工具,其功能还在不断地删减 ; 而php.ini的设置更改可以反映出相当的变化, ; 在使用新的PHP版本前,研究一下php.ini会有好处的 ;;;;;;;; ...
- Excel 中大量图片如何快速导出? 转载自:http://www.zhihu.com/question/20800948
我的办法如下,应该也不慢. 如果是针对以.xlsx为后缀的表格(Excel2007以上的版本),这样做:显示后缀的情况下,直接重命名,把后缀.xlsx改成.rar或者.zip,然后解压出里面的图片文件 ...
- MyBatis注解Annotation介绍及Demo(转)
MyBatis可以利用SQL映射文件来配置,也可以利用Annotation来设置.MyBatis提供的一些基本注解如下表所示. 注解 目标 相应的XML 描述 @CacheNamespace 类 &l ...
- MULTIPOLYGON、POLYGON 封装为echart geoJson 数据封装
一.环境.问题简述: 1.采用的事前后端分离,后端需要封装将点位获取的点位信息封装为geoJson数据类型,供前端利用echart 绘制地图: 2.思路:简单理解geoJson,将对应坐标点位封装为g ...
- Google Maps API3 之 Hello World
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-e ...
- The Reset Method of Te Philips VTR 5210
Pull down and hold the ON/OFF buttun, Then press the play button
- springboot注释层分解图
- C++中时间转换
所需头文件 #include <chrono> #include <time.h> auto now = std::chrono::system_clock::now(); s ...
- [Luogu] 花神游历各国
https://www.luogu.org/problemnew/show/P4145 线段树区间求和 + 区间开根号 对1e9的数开根号下取整用不了几次就会<=1 因此暴力开根号,记录区间最大 ...