欢迎来到天天文库
浏览记录
ID:36699802
大小:1.70 MB
页数:41页
时间:2019-05-10
《使我的程序后台运行—Windows服务》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第20章使我的程序后台运行——Windows服务Windows服务是长时间运行的程序,这些程序执行任务时不与用户交互。这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。这些特性使Windows服务非常适合在服务器上使用,每当需要使用不会影响在同一台计算机上工作的其他用户的功能时也适用。还可以在不同于登录用户的特定用户帐户或默认计算机帐户的安全上下文中运行服务。章节内容20.1什么是Windows服务20.2创建我的第一个Windows服务20.3安装和卸载服务20.4启动和停止服务
2、20.5Windows服务应用实例:数据库备份20.1什么是Windows服务Windows服务是可以长时间运行的程序,可以在计算机启动时自动启动,也可以暂停、重新启动或者卸载,并且在执行任务时不显示任何用户界面。20.2创建我的第一个Windows服务3个步骤:设置ServiceName属性;为服务应用程序创建必需的安装程序;重写OnStart和OnStop方法并为其指定代码,以对服务的行为方式进行自定义。示例:自定义事件日志Step1:新建一个Windows服务项目。单击菜单栏中的【文件】→【新建项目】命
3、令,打开【新建项目】窗口在【模板】列表框中选择【Windows服务】,在【名称】文本框中输入“FirstWinService”。在【解决方案资源管理器】窗口,可以看到一个Service1.vb文件,这是Windows服务的代码文件,我们将其重命名为FirstWinService.vb。Step2:在【属性】窗口中,设置服务的ServiceName属性,如下图。该属性用于对系统标识服务的名称。Windows服务的其他属性CanStop:True指示服务将接受停止运行的请求;False指示禁止停止运行服务。Can
4、Shutdown:True指示服务希望在运行该服务的计算机关闭时收到通知,以便能够调用OnShutdown过程。CanPauseAndContinue:True指示服务将接受暂停或继续运行的请求;False指示禁止服务暂停运行和继续运行。CanHandlePowerEvent:True指示服务可以处理有关计算机电源状态更改的通知;False指示禁止服务得到有关这些更改的通知。AutoLog:True表示在服务执行操作时将信息项写入应用程序的事件日志;False表示禁用此功能。这些属性用于确定服务的工作机制。默
5、认情况下,AutoLog设置为True。当CanStop或CanPauseAndContinue设置为False时,服务控制管理器会禁用相应的停止、暂停或继续服务的菜单选项。Step3:属性设置完毕后,我们还需要为OnStart和OnStop过程填写所需的处理。由于该服务要实现自定义事件日志的功能,这可以由EventLog组件来实现。在工具箱的【组件】选项卡,将EventLog组件拖到服务设计器中。Step4:编写构造函数以定义一个用户事件日志。可以选择方法声明下拉列表中的New以添加一个空的New方法。下面
6、是构造函数的代码,定义了一个用户事件日志。1PublicSubNew()2'调用基类的构造函数3MyBase.New()4InitializeComponent()5'创建一个系统日志源6IfNotSystem.Diagnostics.EventLog.SourceExists("MySource")Then7System.Diagnostics.EventLog.CreateEventSource("MySource",_8"MyNewLog")9EndIf10'设置EventLog组件的源11EventL
7、og1.Source="MySource"12'设置EventLog组件的日志名称13EventLog1.Log="MyNewLog"14EndSubStep5:重写OnStart方法,定义服务启动时发生的情况。1ProtectedOverridesSubOnStart(ByValargs()AsString)2'写入日志,描述信息为“InOnStart”3EventLog1.WriteEntry("InOnStart")4EndSubStep6:重写OnStop方法,定义服务停止时发生的情况。1Protec
8、tedOverridesSubOnStop()2'写入日志,描述信息为“InOnStop”3EventLog1.WriteEntry("InOnStop.")4EndSub除此之外,还可以重写OnPause、OnContinue和OnShutdown方法来定义当服务暂停、继续和系统关机时的处理。至此,我们的FirstWinService服务就基本完成了。单击菜单栏中的【生成】→【生成解决方案】来生成
此文档下载收益归作者所有