lan上的票务系统。使用webservice,windows服务或数据库轮询进行通信?

时间:2013-04-15 11:16:57

标签: c# web-services windows-services

好的我已经被赋予了一个任务,即在我正在工作的工厂中创建类似票务系统的地方,操作员将生成一个存储在数据库中的票证,并发送给工程师采取行动。该数据库是在虚拟服务器上运行的MS SQL数据库。 每个用户都有一个用WPF开发的客户端桌面应用程序。

我一直在坚持如何刺激工程师的警报。生成故障单时,它将存储在数据库中,然后需要将消息或某些内容发送给工程师。到目前为止,我想出了我可以使用的以下想法。

  • Webservice - 客户端连接到此服务器,用于与数据库通信并将消息传递给工程师。
  • Windows服务 - 与上述相同但是作为Windows服务?有好处吗?
  • 数据库轮询 - 工程师的客户端软件持续轮询数据库,每2分钟一次,并检查新生成的票证。如果找到,则通知用户。

数据库轮询可能是最容易实现的,但由于延迟而无法实现。我提到了2分钟的延迟,因为一次会有大约30个人连接,我会说其中12个是工程师,我不知道12个客户端程序是否连续轮询会影响服务器性能。

任何建议都会很棒,或者如果有人知道更好的方法。

1 个答案:

答案 0 :(得分:2)

如果您不想使用轮询(这对30个用户来说不会有问题),那么将是一个带有回调合同的WCF服务,它允许您将事件从服务器发送回客户端。

示例:WCF Callbacks