0

对于一些计划任务,我开发了一个 Windows 服务并在服务器上启动。但是这些任务对我们来说很重要,我们必须监控服务,以防出现任何故障,如果需要,我们必须重新启动或采取行动。

目前我们正在使用Argus来监控服务器或系统;所以我想将我的服务添加到 Argus 的监控列表中。我认为 ping 就足够了,但我不知道如何为我的服务添加 ping 功能?

我想,我需要使用套接字打开一个端口。但是之后?我应该如何回答回声请求?“乒乓”或“确定”

4

2 回答 2

1

也许我在 codeproject 上的文章“通过 Heartbeat 观察应用程序”会对您有所帮助。

但是为了您的需要,您必须稍微改变一下行为。您的服务应等待来自 Argus 的 UDP(或您喜欢的 TCP)发送的请求,并将当前状态(“心跳”)发送回 Argus。Argus 会将响应与预期响应进行比较,并在状态错误或未收到任何内容时发送警报。

Ping(ICMP 回显)只会检查服务器是否可用(可通过 IP 访问)。

于 2013-11-12T09:41:26.273 回答
0

请查看ServiceController 类

例子:

using System.ServiceProcess;

ServiceController sc = new ServiceController(SERVICENAME);

switch (sc.Status)
{
    case ServiceControllerStatus.Running:
        return "Running";
    case ServiceControllerStatus.Stopped:
        return "Stopped";
    case ServiceControllerStatus.Paused:
        return "Paused";
    default:
        return "Status Changing";
}
于 2013-11-12T06:25:09.873 回答