0

我已经实现了一个 Windows 服务应用程序,它将部署到多台机器上并同时运行以处理中央队列中的任务。我为每个运行的服务实例都有一个日志文件。但我希望能够监视服务的所有实例并定期检索应用程序特定信息,例如每个服务正在处理的任务的名称和 ID。

我正在考虑在每台机器上添加一个 Web 服务来公开这些只读信息,并编写另一个应用程序(可能是 Web 应用程序)来通过网络检索这些信息并很好地显示它们。但这是好方法吗?还有其他想法吗?而且我不喜欢使用任何现成的产品。请提供您的建议。

提前致谢!

[我尝试在下面提供我的实现作为答案。如果您有兴趣,请阅读。谢谢。]

4

3 回答 3

1

如果您的服务有一个 API 可以通过网络检索此信息,那么创建一个检查所有正在运行的服务器状态的客户端将相当容易。

这就是有多少计算集群服务在运行——它们运行,客户端可以调度任务以及查询它们。这里可以使用任何技术,尽管对于 .NET,WCF 可能会使这变得相当简单和健壮。

于 2009-08-21T01:14:00.627 回答
0

这可能有点矫枉过正,但请查看System Center Operations Manager。如果您不仅要为应用程序的状态提供“仪表板”样式信息,而且要为跨多台机器(或跨数据中心)的机器和数据库提供状态信息,SCOM 是一个很好的起点。

于 2009-08-21T01:02:54.870 回答
0

我最终实现了与 Reed Copsey 建议的非常相似的东西。由于该应用程序已经是 Windows 服务,因此我为要公开的信息定义服务/数据协定,并将 WCF 托管在同一服务上。此解决方案允许我的客户端(调度程序或 UI 应用程序)从集群中运行的所有服务实例中检索信息。

于 2009-08-22T17:39:18.047 回答