是否可以通过WCF访问串行端口

时间:2016-05-05 05:35:55

标签: c# wcf printing serial-port

我有一个简单的桌面应用程序,其中包含用于打印机的API库,可在通过USB连接的打印机上发送文本。桌面应用程序运行正常。

目的是创建一个WCF服务(托管在Windows服务中),通过它我打印文本。从我在WCF服务中的调试日志中,我看到数据已正确发送到打印机,但打印机报告失败。 Desktop / WCF服务中的代码和数据完全相同。不幸的是,API库函数结果只是"失败"并且没有例外/附加信息。最让人想到的是,WCF服务的应用程序类型默认无法访问串行端口。有必要为WCF服务进行特殊设置吗?

Windows 10

.NET Framework 4

Visual Studio 10

打印机:SANE SK1-21(api UpdSdk.dll)

Windows服务中托管的WCF服务

更新 我尝试用最少的代码创建一个新的极简主义Windows服务 - 打印失败。我使用相同的代码创建了一个新的Windows窗体应用程序和控制台应用程序,并且打印效果很好。

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方案。当我使用

安装Windows服务(托管wcf服务)时
serviceProcessInstaller.Account = ServiceAccount.LocalSystem; 

比打印机运行良好。感谢1.618关于用户权限的观点。

但是,出于安全原因,像LocalSystem一样运行是不合适的。我可能需要为此服务创建一个特殊的用户帐户?特定的特权。所以我不能接受我自己的答案:)