VBNet创建与安装Windows服务.doc
文本预览下载声明
用VB.NET创建与安装Windows服务
一、引言:
在Windows NT、Windows 2000、Windows XP等多任务操作系统中,常常需要运行后台操作的应用程序,它们被称为Windows服务(NT服务)。由Windows服务执行的任务一般不需要用户界面(其控制台界面除外),可由用户手动启动或随计算机启动,并在后台持续运行。像IIS、SQL Server以及很多反病毒软件都使用Windows服务。
二、Windows服务的特点:
1、Windows服务不依赖用户登录,可以在计算机启动时开始运行,当然也可以手工启动。
2、Windows服务需要一个特定的安装过程,使之运行在特定的环境中,双击编译好的EXE文件无法运行它。
3、Windows服务一般没有用户界面,但可以有一个控制界面以操纵服务的启动、停止或设置参数。
4、用户可以通过“控制面板”——“管理工具”——“服务”来查看并管理系统中的Windows服务,如图1所示。
三、创建Windows服务:
在.NET推出以前,Windows服务一般都用C++创建。虽然VB利用第三方工具集也可以创建Windows服务,但线程和安装的问题使开发人员多数不愿使用这种方式。
在.NET中,上述复杂的操作都被封装在.NET Framework类中,任何.NET语言都可以用于创建Windows服务,且十分方便。
创建Windows服务需要用到下面几个类:
System.ServiceProcess.ServiceBase类:实现服务的基类,包含以下几个重要事件。
事件 说明 OnStart 服务启动时发生,初始化代码一般放在该事件中 OnStop 服务停止时发生,结束代码放在该事件中 OnContinue 服务暂停后继续运行时发生 OnPause 服务暂停时发生 OnShutdown 关闭操作系统时发生 System.ServiceProcess.ServiceProcessInstaller类:用于服务的安装,包含了服务安装时所需要的一些必要信息。
属性 说明 Account 运行服务的帐户类型,一般用最高权限的LocalSystem;如使用User,则必须提供用户名和密码 Username 用户名,如Account设为User则要用到本属性 Password 密码,如Account设为User则要用到本属性 System.ServiceProecss.ServiceInstaller类:与安装程序InstallUtil.exe交互,提供安装所需的部分信息。
属性 说明 DisplayName 显示在Server Explorer中的名称 StartType 服务的启动方式,可使用Autimatic(自动)、Manual(手动)
下面,我们创建一个文件监视Windows服务。给它指定一个目录后,该服务能监视目录内任何文件的新建、修改、更名、删除等操作,并将信息写入到系统事件日志中。用户通过“控制面板”——“管理工具”——“事件查看器”——“应用程序”即可了解上述信息。
1、新建一“Windows服务”类型的工程,将该工程命名为FileWatcher。
2、在“解决方案资源管理器”中,将默认的Service1.vb更名为FileWatcher.vb;在“属性”窗口中将(Name)和ServiceName属性均改为FileWatcher。右击工程,在“属性”中将“启动对象”改为FileWatcher。
3、在代码设计器中,展开系统自动生成的代码,找到如下语句:
ServicesToRun = New System.ServiceProcess.ServiceBase() {New Service1()}
将行末的Service1该为FileWatcher。
4、接下来,在代码设计器中加入如下代码:
Imports System.ServiceProcess
Imports System.IO
引用命名空间
Public Class FileWatcher
Inherits System.ServiceProcess.ServiceBase
#Region 组件设计器生成的代码
Private MyFileSystemWatcher As New FileSystemWatcher
Private MyEventLog As New EventLog
分别建立FileSystemWatcher类和EventLog类的实例,MyFileSystemWatcher用于监视指定目录内文件的变化,MyEventLog将事件信息写入日志中
Protected Overrides Sub O
显示全部