【发布时间】:2016-05-06 15:18:53
【问题描述】:
我有一个简单的桌面应用程序,其中包含用于打印机的 API 库,可在通过 USB 连接的打印机上发送文本。桌面应用程序运行良好。
目的是创建一个 WCF 服务(托管在 Windows 服务中),我通过它打印文本。从 WCF 服务的调试日志中,我看到数据已正确发送到打印机,但打印机报告失败。 Desktop/WCF 服务中的代码和数据完全相同。不幸的是,API 库函数结果只是“失败”,没有异常/附加信息。最让我想到的是,WCF Service 的应用类型默认是不能访问串口的。需要对 WCF 服务进行特殊设置吗?
Windows 10
.NET 框架 4
Visual Studio 10
打印机:SANE SK1-21 (api UpdSdk.dll)
WCF 服务托管在 Windows 服务中
更新 我试图用最少的代码创建一个新的极简 Windows 服务 - 打印失败。比我创建了一个新的 Windows 窗体应用程序和控制台应用程序也具有相同的代码并且打印执行得很好。
【问题讨论】:
-
您的 Windows 服务是否以与您的 winforms 应用程序相同的用户身份运行?
-
我用管理员从 cmd 通过“net start ....”启动了服务。 Winform 应用程序通常以普通用户权限启动。
-
使用
services.msc找出服务运行的用户。如果是SYSTEM,则该用户可能无法访问设备驱动程序。尝试将其更改为普通用户。 -
感谢您的指点,我明天会尝试并在那里发布结果
标签: c# wcf printing serial-port