2

我在 vb.NET 中开发了一个处理条码扫描的 Windows 窗体应用程序(条码阅读器设置在 comm 端口上 - 应用程序将扫描的代码传递给处理扫描并将结果返回到的 asp.net asmx Web 服务应用程序)。

该应用程序运行良好,但我的任务是允许在 PC 注销时使用条形码扫描仪。

我在 vb.net (.net framework 4.5) 中开发了一个原型 windows 服务,它将接受条形码扫描 - 目前正在将扫描写入 windows 事件日志,但这将连接到 web 服务以处理扫描。

此服务在 PC 已注销的情况下工作。

我现在需要的是一个显示用户界面的应用程序——即我需要在扫描条形码时弹出一个窗口。我还希望能够“读取”服务正在处理的“条形码扫描仪”对象的集合,以便将它们显示给用户。我还需要能够配置 Windows 服务(设置 Web 服务 URL 等)。

任何人都可以就实现这一目标的最佳方式给我任何建议吗?Windows 服务可以将信息“推送”到“客户端”吗?如果是这样,实现这一目标的机制是什么?

Windows 服务可以公开方法(例如“GetScanners”或“GetLastScan”)吗?您将如何设置?

感谢您的任何想法/建议!

克里斯

4

1 回答 1

0

我会推荐以下两个选项之一:

  1. 从窗口的服务中托管 WCF 服务,然后让客户端应用程序引用该 WCF 服务。然后客户端可以调用适当的 WCF 方法来查询服务的当前状态或设置它的属性。
  2. 该服务可以从一个常用的数据库读取/写入它的所有状态和设置。然后,客户端可以直接从同一个数据库读取和写入。

第一种选择可以说是更好的选择。它更灵活地满足未来的需求,提供与服务通信的实时方法。但是,WCF 可能需要很长的学习曲线,因此,如果您对 WCF 尚不熟悉,并且选项 2 满足您当前的需求,那么这不是一个糟糕的解决方案。

WCF 的工作原理本质上类似于 Web 服务,但它更强大且更可配置。如您所建议的,如果您需要从 Windows 服务公开诸如“GetScanners”之类的方法,则可以使用此解决方案。

于 2012-09-26T15:04:02.640 回答