2016-05-05 4 views
0

У меня есть простое настольное приложение с библиотекой API для принтера, которое отправляет текст на принтер, подключенный через USB. Настольное приложение отлично работает.Является ли последовательный порт доступным через WCF

Целью является создание службы WCF (размещенной в службе Windows), через которую я печатал тексты. Из моего журнала отладки в службе WCF я вижу, что данные были правильно отправлены на принтер, но отчеты принтера не удались. Код и данные точно такие же, как в Desktop/WCF. К сожалению, результаты функции библиотеки API являются только «неудачными» и не содержат никаких исключений/дополнительной информации. Самое главное, что тип приложения службы WCF не может получить доступ к последовательному порту по умолчанию. Необходимо установить специальные настройки для службы WCF?

для Windows 10

.NET Framework 4

Visual Studio 10

Принтер: САНА SK1-21 (апите UpdSdk.dll)

службы WCF размещается в службе Windows

UPDATE Я попытался создать новый минималистский windows ser недостаток с минимальной ошибкой печати кода. Затем я создал новое приложение Windows Form и консольное приложение с тем же кодом и печать выполнена хорошо.

+0

Работает ли ваш Windows-сервис как тот же пользователь, что и ваше приложение winforms? –

+0

Я начал службу через «net start ...» из cmd с администратором. Приложения Winform начинаются с обычных пользовательских привилегий. – Majkl

+1

используйте 'services.msc', чтобы узнать, какой пользователь работает в качестве службы. Если это 'SYSTEM', этот пользователь может не получить доступ к драйверу устройства. Попробуйте изменить его на обычного пользователя. –

ответ

0

Я нашел одно решение. Когда я устанавливаю службу Windows (которая размещала службу wcf) с

serviceProcessInstaller.Account = ServiceAccount.LocalSystem; 

, чем принтер работает хорошо. Спасибо за 1.618 за то, что вы указали на пользовательскую привилегию.

но, работает как LocalSystem, не подходит по соображениям безопасности. Возможно, мне нужна специальная учетная запись пользователя для этой службы? определенных привилегий. Поэтому я не могу принять свой собственный ответ :)