多客户端管理/监控Windows服务的最佳策略是什么? (C#)

9
我有一个 .net 的 Windows 服务,实现了自定义协议。我需要从多个桌面客户端监控此服务(如数据包的到达、拒绝、错误等)。 我正在评估不同的方案(例如远程调用、套接字组播等),但我想知道这个问题是否有标准解决方案。如果考虑像 IIS、服务化组件等服务,您可以同时从多个客户端进行远程连接并管理服务,因此我认为这是一个非常普遍的情况。 感谢您提供建议和示例。 提前致谢。

可能的重复问题:与Windows服务通信如何与Win服务通信GUI和Windows服务通信。请注意,大多数答案建议使用WCF作为最合适的策略。一旦配置好,它非常简单易用。 - vgru
2个回答

7

SNMP

摘自维基百科(我已经突出了有趣的部分):

简单网络管理协议(SNMP)是一种“用于管理IP网络上的设备的Internet标准协议。通常支持SNMP的设备包括路由器、交换机、服务器、工作站、打印机、调制解调器架等。”1 它主要用于网络管理系统,以监视网络连接的设备是否需要管理员注意

C#实现:http://www.snmpsharpnet.com/


希望我能投多个赞。我将非常关注链接的项目。 - Tim Coker
嗨jgauffin,我有SNMP的经验,这是一个非常复杂的方法。我的服务是使用比SNMP更简单的协议来管理网络设备。 SNMP用于管理服务后面的设备,而不是管理服务本身,我认为。 - Ariel Larraburu
一开始看起来确实有些复杂,我也同意。但所有这些数字都是出于良好的原因而指定的。试着看一些代码示例(例如在CodeProject上),你会发现这并不是魔法。好处是你的客户可以使用任何SNMP监视应用程序来跟踪你的应用程序。这是一个巨大的销售亮点。 - jgauffin
这是一个内部解决方案,我不需要向任何人推销,只需要让我的老板满意,他喜欢简单的解决方案。我喜欢专业的解决方案,所以我需要一个能让我们双方都满意的解决方案。 - Ariel Larraburu
好的。如果你认为SNMP太复杂了,那就选择WCF吧。 - jgauffin

2
一个简单的实现方法是使用自定义命令。然后,您可以使用WMI来管理具有自定义命令的服务。

不知道这个,看起来是一个有趣的解决方案。 - Ariel Larraburu
1
@Ariel,@Aliostad:如果你们的意图是监控服务,我不认为这会起作用。你只能向服务端传递最多128个不同的“命令”,而且没有额外的参数。你不能通过这种方式从服务端接收任何信息,因此你将无法监控它(如果我没有在你们的回答中漏掉什么)。 - vgru

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接