2015-03-26 4 views
1

У нас есть служба Windows (написанная на C#), которая использует стороннюю DLL для связи с COM-принтером.Служба Windows не может открыть COM-порт

Уже протестирован сервис Windows на 4-х местных компьютерах, и в каждом случае принтер работает правильно.

У нас также есть эта служба Windows, уже развернутая на производстве у нескольких клиентов, и она также работает корректно, но теперь мы, где ее развертываем с новым клиентом, и в каждом тесте мы делаем DLL неспособным открыть COM-порт (уже проверено, используется ли оно другим приложением и ничего).

Но самое странное, что если мы запустим службу .exe из командной строки, она работает правильно, поэтому мы попытались запустить службу как пользователь, подключенный к машине (вместо локальной системы), и даже это не так Работа.

Что может быть причиной этого? Есть ли какой-либо способ либо с помощью конфигурации Windows, либо с помощью какого-либо программного обеспечения, чтобы предотвратить связь службы Windows с COM-портом? Или есть другое объяснение?

+0

Как вы определили, что другое приложение не использовало последовательный порт? (Т.е. клиент говорит, что это может быть правильно, потому что нет последовательных портов для использования). – Richard

+0

Проверьте использование COM-порта следующим образом: MyPort = новый SerialPort («COM1»); try {MyPort.Open();} catch (Exception ex) {Console.WriteLine («Ошибка открытия порта: {0}», ex.Message);} –

+0

Итак, как это может произойти (если вообще) нет "COM1"? (Да, я посещал сайт для установки и обнаружил, что их аппаратное обеспечение не соответствует требованиям системы, как это важно.) – Richard

ответ

0

Извините, что пришли сюда, ища решение проблемы, но моим решением было изменить стороннюю DLL.

Смежные вопросы