所以我对我正在进行的项目有以下要求,我无法弄清楚最好(或任何,就此而言)这样做的方法。
我在总部的IIS上有一个asp.net网络应用程序。当特定事件发生时,我需要在整个公司的动态选择的PC子集上显示消息。由于此过程的时间限制(4小时反应时间),必须显示该消息,并且我们在法律上不能不显示该消息。
所以我需要做以下事情:
我考虑过以下几点:
在SO看来,解决这个问题的最佳方法是什么?在此先感谢您的帮助。
答案 0 :(得分:4)
一种方法是:
您的网络应用应该只是将消息存储在数据库中;并且,如果您想要一点健壮性,则会公开桌面应用程序调用的Web服务以检索消息并将其标记为已查看。这样可以防止需要让桌面应用程序直接与sql server通信,这意味着桌面应用程序可以安装在世界任何地方。
应安装桌面应用程序,使其无法禁用/关闭/卸载。有很多种方法可以做到这一点。
我不会使用你定义的任何方法,因为它们很复杂并且引入了过多的脆弱性。
<强>更新强> 有几种方法可以锁定应用程序:
如果您真的希望它有效,请执行以下操作: 确保您的应用程序每小时通知家庭服务器一次。让首席执行官发出一条消息,指出如果应用程序被关闭,相关员工将被解雇。他们可能会说它比这更好一点。定期运行审计报告并解雇几个人以吓跑别人。我保证在那之后没人会搞砸它。
确保审核报告得到经理的确认......毕竟员工可能不在那一天。 ;)
答案 1 :(得分:1)
您可以让HQ应用程序在表中设置一些记录,以了解哪些客户端需要显示消息
Message [ComputerName, IsAcknowledged]
然后,每个客户端将在必要时查看该表,以查看其ComputerName是否存在且IsAcknowleded == false。如果是,请显示Acknowledge的提示,更新他们的记录
答案 2 :(得分:1)
探索发布和订阅设计模式。这可能是您正确的解决方案。基本上,它启动所有Windows应用程序将注册回调的服务,并从您的webapp,您可以在服务中引发将发布所有已注册应用程序的事件。发布者将具有根据事件和来源识别PC子集的逻辑。