Mcad学习笔记之Microsoft Windows服务

Windows服务是在后台运行的

它没有用户界面,比较适合处理不要与用户交互的任务

它可以运行在win2000,winXp,WinNt等操作系统上

关于如何编写简单windows服务应用程序

大家可以参考

http://chs.gotdotnet.com/QuickStart/howto/default.aspx?url=/quickstart/howto/doc/SimpleService.aspx

我在这里就个人的学习心得,做了一个小总结:

Microsoft Windows服务使用System.ServiceProcess空间的类来创建,安装,控制

其中:

类System.ServiceProcess.ServiceBase用来创建服务

类System.ServiceProcess.ServiceInstaller和System.ServiceProcess.ServiceProcessInstaller用来安装服务

ServiceInstaller类扩展ServiceBase来实现服务。在安装服务应用程序时由安装实用工具调用该类

ServiceProcessInstaller安装一个可执行文件,该文件包含扩展 ServiceBase 的类。该类由安装实用工具(如 InstallUtil.exe)在安装服务应用程序时调用

让我们先来认识ServiceBase的几个比较重要的属性和方法:

属性ServiceName是得到服务的名称

属性AutoLog是指示是否在事件日志中报告“开始”、“停止”、“暂停”以及“继续”命令。

当它为true时,系统会自动在“应用程序”事件日志报告状态

当将AutoLog 设置为 false,我们可以在事件中处理自己的日志

属性CanStop是指示服务启动后是否可以停止

如果为 true,服务可以停止并调用了OnStop 方法

同样属性CanShutdown和CanPauseAndContinue,CanShutdown也是类似的意思

虚方法OnStop是在服务收到“停止”命令时进行的,注意当CanStop=false是不调用此方法的

虚方法OnStart是服务收到“开始”命令时进行的

虚方法OnPause是服务收到“暂停”命令时进行的(当CanPauseAndContinue 属性为true时)

虚方法OnContinue是服务“暂停”后重新启动时进行的(当CanPauseAndContinue 属性为true时)

虚方法OnShutdown是计算机系统关闭时发生的(当CanShutdown属性为true)

虚方法OnPowerEvent是计算机电源状态更改时执行的(当CanHandlePowerEvent属性为true)

虚方法OnCustomCommand是服务接到自定义命令时执行的,我在后面提供的代码中有该方法的实现。

大家只要在自己的代码中重写上面的方法即可实现自己的业务逻辑

点每个服务的属性窗口,会发现有一个“添加安装程序”的按钮,它就是vs2003中带有Windows服务安装功能

它实际是生成一个安装类,它继承了System.Configuration.Install.Installer

编译后我们得到一exe的程序集

再可使用“.NET 框架 SDK 安装实用工具”来安装服务到我们的电脑上

安装命令:

InstallUtil.exe filename.exe

反安装命令:

InstallUtil.exe /u filename.exe

服务安装好以后,我们可以通过windows控制面板里的服务控制管理器来控制我们的服务运行,当然我们也可以写代码来实现控制,这时我们得用到类System.ServiceProcess.ServiceController,该类的使用比较简单。具体大家可以参考帮助文档。

时间: 2024-09-22 17:01:57

Mcad学习笔记之Microsoft Windows服务的相关文章

kvm虚拟化学习笔记(五)之windows虚拟机性能调整

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://koumm.blog.51cto.com/703525/1290682 KVM虚拟化学习笔记系列文章列表 ---------------------------------------- kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51cto.com/703525/1288795 kvm虚拟化学习笔记(二)之linuxkvm虚拟机安装htt

kvm虚拟化学习笔记(三)之windows kvm虚拟机安装

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://koumm.blog.51cto.com/703525/1290191 KVM虚拟化学习笔记系列文章列表 ---------------------------------------- kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51cto.com/703525/1288795 kvm虚拟化学习笔记(二)之linux kvm虚拟机安装 h

Mcad学习笔记之序列化(2进制和Soap序列化)

我最近学习remoting和web服务时,总是看到一个重要的字眼"序列化". 那什么是序列化呢? 以前我也模模糊糊. 为了搞清楚,请和我一起来序列化学习之旅吧. 让我们先看看序列化的定义,以下是微软的说明: 序列化可被定义为将对象的状态存储到存储媒介中的过程.在此过程中,对象的公共字段和私有字段以及类的名称(包括包含该类的程序集)都被转换为字节流,然后写入数据流.在以后反序列化该对象时,创建原始对象的精确复本 序列化一般用在2种地方: 1.将数据保持到存储中 例如:我知道在Asp.Ne

Object C学习笔记6-如何在Windows环境搭建Object C开发环境

1. 安装编译环境 Object C和其他很多语言一样,都需要有一个编译器.Object C 是在GCC下编译的.GCC(GNU Compiler Collection,GNU编译器集合),是一套由 GNU 开发的编程语言编译器.很多人想到学习Object C就想到mac电脑,想到XCode开发工具.其实在Windows环境一下也可以编译Object C. 首先下载Windows版本的GCC编译器,下载地址:http://wwwmain.gnustep.org/resources/downloa

Mcad学习笔记之异步编程

(AsyncCallback委托,IAsyncResult接口,BeginInvoke方法,EndInvoke方法的使用小总结) 让我们来看看同步异步的区别: 同步方法调用在程序继续执行之前需要等待同步方法执行完毕返回结果 异步方法则在被调用之后立即返回以便程序在被调用方法完成其任务的同时执行其它操作 .NET框架基类库中有好几种类都可以提供同步和异步的方法调用. 因为同步方法调用会导致程序流程中途等待,所以采用同步方法的情况下往往会导致程序执行的延迟 相比来说,在某些条件下选择异步方法调用就可

Mcad学习笔记之委托再理解

(delegate的构造器,MulticastDelegate,BeginInvoke,EndInvoke,Invoke4个方法的探讨) 先定义一个委托如下: public delegate void myEventHandler(int i,out string o); 再用MSIL反汇编程序(Ildasm.exe)来观看反汇编代码 其实CLR为我们做了4件事情 1.定义一个构造器 2.定义一个虚方法BeginInvoke 3.定义一个虚方法EndInvoke 4.定义一个虚方法Invoke

Windows phone 8 学习笔记(3) 通信

原文:Windows phone 8 学习笔记(3) 通信 Windows phone 8 可利用的数据通信方式比较广泛,在硬件支持的前提下,我们可以利用WiFi.蓝牙.临近感应等多种方式.数据交互一般通过套接字来完成,我们将在本文详细的分析. 快速导航:     一.WP8套接字     二.蓝牙     三.NFC     四.获取网络状态     五.访问web的几种方式 一.WP8套接字 1)创建套接字客户端 Windows phone 8中的套接字并不支持发布服务端,我们只能利用它在手

Windows phone 8 学习笔记(6) 多任务

原文:Windows phone 8 学习笔记(6) 多任务 Windows phone 8 是一个单任务操作系统,任何时候都只有一个应用处于活跃状态,这里的多任务是指对后台任务的支持.本节我们先讲讲应用程序的运行状态,然后看看支持的后台任务,包括:后台代理.后台音频.后台文件传输.后台辅助线程等. 快速导航:     一.应用的状态     二.后台代理     三.后台音频     四.后台文件传输     五.后台辅助线程 一.应用的状态 1)应用的运行状态 我们通过图解来分析应用的运行状

kvm虚拟化学习笔记(二)之linux kvm虚拟机安装

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://koumm.blog.51cto.com/703525/1289627 KVM虚拟化学习笔记系列文章列表 ---------------------------------------- kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51cto.com/703525/1288795 kvm虚拟化学习笔记(二)之linuxkvm虚拟机安装htt