0

请不要对这个问题的标题感到困惑,我不知道我想要完成的确切技术术语是什么:)。我的要求可能有点奇怪,我已经实现了它,但我需要一些最佳实践/方法来正确地做到这一点。

这是我的情况。

我正在开发一个客户端系统监控 Windows 应用程序(客户端中的跟踪软件和我系统中的监控软件)。我有许多系统连接到 LAN,并且我有一个监控系统。如果客户端系统上发生任何特定操作,我会收到通知。我不能在我的网络中使用任何数据库,所以我正在做的是,由于我的系统也连接到 LAN,我在我的系统中共享了一个文件夹。每当客户端系统发生某些操作时,跟踪软件都会在我的系统中的共享文件夹中创建一个包含事件的文件。监控软件使用一个计时器,它会以一定的时间间隔(15 分钟)连续检查共享文件夹中的任何新文件。如果找到任何文件,监控系统将知道发生了一些事件并显示该事件。

但是这个问题我只会在 15 分钟后得到通知。另外,我认为这不是最好的方法。可能有一些好的和最好的方法。有没有办法从客户端机器直接向我的监控应用程序注册事件?

请注意:我不能为此目的使用任何数据库。

任何建议将不胜感激。

4

4 回答 4

1

看看SignalR - 它提供实时通知,可以完全按照您的描述使用。

您不需要数据库(但请记住,如果您的服务器没有运行,您将错过事件 - 这可能会也可能不会接受)。

于 2013-01-31T14:14:17.643 回答
0

看看FileSystemWatcher。这将监视目录并引发事件。IME,它运行良好,但可能会因大量流量而失败。

于 2013-01-31T14:15:52.603 回答
0

这听起来像是 MSMQ(MS 消息队列)和触发器的完美候选者。

创建一个所有跟踪软件都可以写入的 MSMQ。然后有一个 MSMQ 触发器(可能通过 WCF/命名管道连接到前端)在监控软件中显示警报

于 2013-01-31T14:19:04.230 回答
0

您可能想要使用WCF 框架

这里有两个链接可以帮助你:

wcf 教程事件和回调

wcf-tutorial-basic-interprocess-communication

于 2013-01-31T14:24:25.730 回答