Windows服务是在后台运行的
它没有用户界面,比较适合处理不要与用户交互的任务
它可以运行在win2000,winXp,WinNt等操作系统上
关于如何编写简单windows服务应用程序
大家可以参考
我在这里就个人的学习心得,做了一个小总结:
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,该类的使用比较简单。具体大家可以参考帮助文档。
我写了3个关于windows服务的使用小程序
压缩包中代码说明:
TransactionService项目是一个windows服务,该服务实现了一个自定义日志和一个自定义性能计数器,我们先安装此服务
TransactionClient项目是通过一个win窗口来控制该服务
ServiceController项目也是通过一个win窗口来控制该服务
分享到:
相关推荐
Visual C# .NET是微软.NET框架下的一种高级编程语言,它在Windows应用开发、Web服务和桌面应用等方面具有广泛的应用。 1. **.NET框架基础**:.NET框架是微软开发的一个软件平台,包含了执行环境(CLR,Common ...
As you gain practical experience with essential development tasks, you’re also preparing for MCAD or MCSD certification for Microsoft .NET. <br/>Learn how to: •Create the user interface, ...
技术指标MCAD是技术分析中常用的指标之一,它可以帮助投资者捕捉股票的涨跌趋势和买卖点。MCAD指标是基于MACD(Moving Average Convergence Divergence)指标,它通过计算股票的快慢均线的差异来预测股票的涨跌趋势...
.NET 认证MCAD70-305实战百题详解 清华大学出版社 美国微软工程师张玉石编著。
MCAD可快速绘制平面机构运动简图,并运动分析、仿真和设计.建一个模型仅需用几十秒到几分钟,比用商业CAD软件建模更简单、快捷,且可重复使用调整。可供从事机械的工程师、学生、教师使用.(若不是CSDN用户,请尽可能...
本文主要介绍了二维交互性绘图软件包MCAD的数据结构,该软件包专为机械设计领域设计,旨在提供一款更加轻量级、易于扩展和维护的绘图软件。文章首先指出,当前市场上的二维交互性绘图软件虽然种类丰富,但多数为大型...
此外,还提及了ECAD(电气计算机辅助设计)和MCAD(机械计算机辅助设计)的集成。 ECAD主要面向电子设计,包括电路图绘制、原理图设计、PCB布线、PCB布局等,它对于硬件开发工程师而言是必不可少的工具。而MCAD则...
Visual Basic® .NET and Microsoft Visual C#® .NET MCAD/MCSD Self-Paced Training Kit: Developing Windows®-Based Applications with Microsoft® Visual Basic® .NET and Microsoft Visual C#® .NET, ...
you’re also preparing for MCAD or MCSD certification for Microsoft .NET. <br/>COVERAGE INCLUDES: • Creating and managing Microsoft Windows® services, serviced components, .NET remoting ...
《MCAD-MCSD Visual C# Certification all in one》是一个针对微软认证的综合学习资源,旨在帮助考生准备MCAD(Microsoft Certified Application Developer)和MCSD(Microsoft Certified Solution Developer)的...
- **Microsoft Windows 2000 目录服务基础设施设计与管理**:此课程建议学习时间为20天,课程号为2154A,考试号为70-217。主要内容包括Windows 2000目录服务概述、DNS设计以支持活动目录、创建Windows 2000域、用户...
本教程作为MCAD-MCSD的学习资源,旨在帮助开发者掌握XML Web服务和服务器组件的开发技术。 9. **实战演练** "Solution"文件可能包含了一些示例项目的源代码,供读者实践和学习。通过实际操作,可以加深对XML Web...
通过学习这些材料,开发者可以深入理解C#语法、.NET Framework的工作原理、如何使用WinForms构建桌面应用、利用ASP.NET进行Web开发以及创建和管理Windows服务。** 总的来说,MCSD认证涵盖了从基础的编程语言到复杂...
**MCAD-开源:城市大气污染模拟的利器** 在当今环保意识日益增强的社会,了解和预测城市大气污染显得尤为重要。MCAD( Metropolitan Air Quality Simulation System)是一个基于质量守恒原理和对流扩散方程的开源...
- **MCAD(Microsoft Certified Application Developer):** 针对Windows应用程序开发者的专业认证。 - **MCPD(Microsoft Certified Professional Developer):** 专注于.NET Framework开发的专业认证。 #### 七...
MCAD MCSD CSharp Certification All in One Exam Guide MCAD MCSD CSharp Certification All in One Exam Guide MCAD MCSD CSharp Certification All in One Exam Guide
《ECAD与MCAD设计团队之间的沟通方案》 在当今高度集成的产品设计环境中,ECAD(电子计算机辅助设计)和MCAD(机械计算机辅助设计)的界限日益模糊,设计团队间的沟通成为产品开发的关键环节。文章作者Pawel Z. ...
使用Visual+C#.NET+开发+Windows+应用.rar 本书介绍利用Visual C#.NET... 本书适用于C#.NET专业编程人员,广大编程爱好者,以及高校相关专业师生,此外还可作为备考微软MCAD/MCSD考试的参考书,考试号70—316。
MCAD-MCSD Self-Paced Training Kit305&315 MCAD-MCSD Self-Paced Training Kit305&315 MCAD-MCSD Self-Paced Training Kit305&315 MCAD-MCSD Self-Paced Training Kit305&315
MCAD-MCSD Self-Paced Training Kit306&316 MCAD-MCSD Self-Paced Training Kit306&316 MCAD-MCSD Self-Paced Training Kit306&316