2010-03-02 139 views
3

我正在开发具有七个Windows服务和用户界面的旧产品。服务中存在一些导致每10-15天崩溃的错误。我需要编写一个应用程序来监视服务的状态。如果服务崩溃,我需要发送一封电子邮件给管理员启动服务。服务看门狗设计

我无法使用自动恢复过程,因为在某些崩溃期间,会显示Microsoft错误报告对话框或其他对话框,并且服务会一直运行,直到消息被确认。

所以,我打算去这个单独的应用程序/监视服务来监视崩溃,直到原始服务中的错误完全修复。

请分享您对设计的看门狗服务的看法。

谢谢。

+1

如果网络中已经存在这样的工具,你有没有办法? – ckv 2010-03-02 06:57:14

回答

1

你的问题表明,Windows服务恢复不会被触发,因为没有点击错误对话框。也许你需要的是检测错误对话框是否打开并点击按钮。这样,服务可以成功退出,Windows服务恢复可以踢入。

我有attached一个程序,我用它来自动点击恼人的clearcase对话框。以下是驱动程序的示例配置文件。您只需添加一行新的clickInfo并填写正确的窗口和按钮标题。

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
    <section name="clickConfiguration" type="ClickButton.ClickConfigurationSection, ClickButton"/> 
    </configSections> 
    <clickConfiguration>  
    <clickInfo windowName="ClearCase" buttonName="Proceed" /> 
    </clickConfiguration> 
</configuration> 

希望它有帮助!

+0

这一个帮助.. – bdhar 2010-03-19 06:43:35

2

从你的问题我明白,Windows不能告诉服务是否结束,因为它显示一个dialouge。如果Windows无法检测到服务已关闭,另一个应用程序又如何。
你将不得不找到证据证明该过程正在做的事情。检查日志文件是否增长或查看是否正在写入事件是最简单的事情。

-1

滑稽你如何需要手工编辑注册表来禁用Drwatson,有一个命令行,使回;)这里,看看这个微软KB:http://support.microsoft.com/kb/188296

+0

好吧,我很讽刺,但主持人是否按照链接?它包含说明禁用沃森博士 – Eddy 2010-03-04 11:23:34

0

如果你不能修复这些服务,但可以“揭发”他们作为Internet上的HTTP资源,您可以使用在线网站监控服务来定期检查服务是否仍在运行。创建一个知道如何在本地“ping”您的服务并通过其中一个监控服务请求其页面的小型网站。

我知道几种这样的服务:http://www.setcronjob.com/,http://www.webcron.org/,http://scheduler.codeeffects.com。最后一个可以监控你的私人网络上的HTTP资源,但这个功能不是免费的。希望这可以帮助。