如何检查是否有人在运行我的程序?

时间:2012-03-05 22:51:30

标签: .net vb.net winforms

我有一个10-20人全天使用的程序。因为事情正在迅速波动,我偶尔必须使数据库脱机,或者出于其他原因重启服务器。我想有一个更好的方法来确保目前没有人参与该计划,而不是走向每个人并问他们。

如果像这样的东西已经存在,我不想重新发明轮子。

我的想法是:

  • 每次用户打开或关闭程序时,都会创建一个数据库“历史记录”条目,以查看当前使用该系统的用户。
  • 使用WCF让客户端“告诉”服务器每隔X秒就连接一次。

这个问题是否有更好或更简单的解决方案?

2 个答案:

答案 0 :(得分:0)

一种解决方案是创建一个数据库表,每次有人登录时,都会为它们创建一条记录。每隔15分钟,它会在上次更新时更新。当它们关闭时,它会删除记录。如果任何记录长度超过15分钟,那就是应用程序崩溃。

它的原始但它可以工作,然后你可以运行一个简单的数据库查询。

答案 1 :(得分:0)

一种解决方案是使用UdpClient在网络上广播一些数据,并查找响应以查看应用程序的任何实例是否在线。

我不知道这个解决方案在你的情况下是否可行,但我认为这个解决方案对某些人来说会派上用场,至少。