1

下面的代码片段使用 OPOS .NET 打开 POS 打印机进行打印。当作为独立应用程序的一部分执行时,它可以正常工作。当由 Windows 服务执行时,对 GetDevice(...) 的调用始终返回 null。

explorer = new PosExplorer();
device_info = explorer.GetDevice(DeviceType.PosPrinter, PrinterName);
printer = (PosPrinter)explorer.CreateInstance(device_info);
printer.Open();
printer.Claim(1000);
printer.DeviceEnabled = true;

打印机恰好是 Epson TM-U220B。在服务访问 POS 设备之前,是否存在需要解决的安全问题?任何人都可以推荐有关使用 OPOS .NET 的 Windows 服务开发的良好信息来源吗?

4

2 回答 2

3

啊,OPOS,已经有一段时间了... ;)

听起来很安全。测试它是否是的方法: 1. 在您知道可以在独立应用程序中运行的用户帐户下运行服务 2. 检查服务配置中的设置,以使其与桌面交互。

于 2010-08-14T12:10:42.760 回答
2

你的代码看起来不错。我看到变量名称 PrinterName。此变量应包含分配给打印机的逻辑名称。逻辑名称分配是一个单独的步骤,可能会被忽略。您可以使用 POS for .Net SDK 提供的 POSDM 确认逻辑名称的正确存在。命令路径是

C:\Program Files\Microsoft 服务点\POSDM LISTNAMES

如果设备和分配的逻辑名称没有出现,那么这将解释您当前的情况。

于 2011-05-17T08:38:54.927 回答