如何检查某人是否正在运行我的程序?
问题描述:
我有一个10-20人全天使用的程序。由于事情正在迅速波动,我偶尔需要将数据库脱机,或者出于其他原因重新启动服务器。我想有一个更好的方法来确保目前没有人参与该计划,而不是走向每个人并问他们。如何检查某人是否正在运行我的程序?
我不想重新发明轮子,如果这样的事情已经存在。
我所做的是在思考:
- 创建数据库“历史”进入用户每次打开或关闭程序,看看谁正在使用该系统。
- 使用WCF让客户端“告诉”服务器每隔X秒连接一次。
有没有更好或更容易解决这个问题的方法?
答
一个解决方案是创建一个数据库表,每次有人登录时,都会为他们创建一条记录。每15分钟更新一次上次更新时间。当它们关闭时,它会删除记录。如果任何记录超过15分钟,这是应用程序崩溃。
它的原始但它的工作原理,然后你有一个简单的数据库查询运行。
答
一种解决方案是通过网络以UdpClient
广播一些数据并查找响应以查看应用程序的任何实例是否在线。
我不知道这种解决方案在您的情况下是否可行,但我认为这个解决方案对于某些人来说至少可以派上用场。
它是什么样的“程序”,ASP.NET,WPF,Winforms,...? – 2012-03-05 22:52:45
这是一个Winforms程序 – Origin 2012-03-05 23:01:52
也许你的数据库保留了当前登录用户的记录,你可以查询。其中一个系统表... – Dialecticus 2012-03-05 23:06:53