Windows服务意外停止对策.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Windows服务意外停止对策

Windows服务意外停止对策   [摘要]针对Windows服务在运行过程中出现的意外停止的情况下实现无人值守定时检测服务状态,在服务停止后能自动启动服务。   [关键词]服务 意外停止 对策   中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0520032-02      一、前言      系统服务,是指执行指定系统功能的程序、例程或进程,以便支持其他程序,尤其是低层(接近硬件)程序,它是Windows系统的一个重要组成部分。   我院在做医院管理系统与医疗保险系统接口过程中使用到一个外加进系统的医保服务,但该服务在实际使用过程中经常出现服务不定时的意外停止,该服务的停止必然导致门诊住院医保病员的就诊不能正常进行,也给计算机中心的管理带来了很大的挑战,每次服务停止后都必须在服务器上用手工执行启动后才能恢复正常,为恢复该服务必须到机房手工处理,有时甚至在深夜。针对这一情况,如何才能在无人值守的情况下实现对该服务做监视和启动处理操作呢?经过多次摸索,终于成功地利用VB的API函数及系统的计划任务配合实现在无人值守情况下服务的   自动监视和服务停止后的自动启动。      二、方法简介      要实现对停止的服务重新启动,需要做到以下几个功能:   1.定时处理:利用系统的任务计划指定程序定时执行一次,执行处理完成后直接退出程序。   2.检测服务状态及重新启动服务:利用API函数构建的类模块实现对系统的服务状态进行服务状态的检测及停止状态下的再启动操作。   3.文件的读写功能:用API函数实现对配置文件的读取,用write函数实现将启动服务事件以追加方式写入到历史   文件中。      三、程序实现      (一)准备工作   新建一个标准工程,名称为[服务类],在工程中创建一个窗体,名称为[frmService];在工程资源管理器中新建一个模块,名称为[mdlService];在工程资源管理器中新建一个类模块,名称为[clsService]。如图1所示。      (二)程序代码   1.窗体代码   Option Explicit   Private Sub Form_Load()   iniPath = App.Path + \service.ini   Dim mySrv As New clsService   Dim tService As String   取需处理的服务   tService = GetFromINI(需监控服务, 名称, iniPath)   mySrv.Name = tService   当前服务状态,如处理停止状态则做启动处理,否则退出程序   If mySrv.GetServiceStatus = SERVICE_STOPPED Then   如启动服务正常,则写入历史文件中备查   If mySrv.StartNTService = 0 Then   Open App.Path + \服务历史.txt For Append Shared As #1   Write #1, Format(Now, yyyy-mm-dd hh:mm:ss) - tService 服务意外停止,已重新执行了启动。   Close #1   End If   End If   End   End Sub   2.模块代码   Option Explicit      Public iniPath As String   Public ServiceName As String   Public Declare Function GetPrivateProfileString Lib kernel32 Alias GetPrivateProfileStringA (ByVal lpApplicationName As String, lpKeyName As Any, ByVal lpDefault As String, ByVal lpRetunedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long   Public Declare Function WritePrivateProfileString Lib kernel32 Alias WritePrivateProfileStringA (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal l

文档评论(0)

fangsheke66 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档