Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 向Windows服务添加Ping功能_C#_Sockets_Windows Services_Ping - Fatal编程技术网

C# 向Windows服务添加Ping功能

C# 向Windows服务添加Ping功能,c#,sockets,windows-services,ping,C#,Sockets,Windows Services,Ping,对于一些预定的任务,我开发了一个Windows服务,并从服务器开始。但这些任务对我们很重要,我们必须监控服务,以防出现任何故障,我们必须重新启动或在需要时采取措施 目前,我们用于监控服务器或系统;所以我想在Argus的监视器列表中添加我的服务。在我看来,ping就足够了,但我不知道如何在我的服务中添加ping功能 我想,我需要用套接字打开一个端口。但是后来呢?我应该如何回答回音请求?“Pong”或“OK”请查看 示例: using System.ServiceProcess; ServiceC

对于一些预定的任务,我开发了一个Windows服务,并从服务器开始。但这些任务对我们很重要,我们必须监控服务,以防出现任何故障,我们必须重新启动或在需要时采取措施

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

我想,我需要用套接字打开一个端口。但是后来呢?我应该如何回答回音请求?“Pong”或“OK”

请查看

示例:

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";
}
也许我的朋友会帮助你

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


Ping(ICMP echo)将仅检查服务器是否可用(可通过IP访问)

你想检查internet连接吗?不,我只想监视服务状态,运行或停止。我想这将是合适的,因为我想从另一个系统监视我的服务(在我们的情况下,这是Argus)。所以我没有机会写一段代码来检查我的服务是否仍然有效。据我所知,argus可以ping我的服务或检查我的服务的其他内容以了解其状态。所以我应该在我的服务中添加一个功能来告诉它的状态。我正在检查你的建议,然后如果它适合我的情况,我将接受你的回答。我检查了示例,但我不能清楚地说明什么。如何才能发挥Argus客户的作用。Argus是一个基于linux的系统,我们不能让Argus每分钟监听一个端口或等待一次“hearbeat”。看起来需要一个请求/响应模式。在我的回答中,我也对客户机和服务器感到困惑。我会更新我的答案。。。