В приведенном ниже фрагменте кода используется OPOS .NET для открытия принтера POS для печати. Он отлично работает при выполнении как отдельное приложение. При выполнении службой Windows вызов GetDevice (...) всегда возвращает null.OPOS PosExplorer.GetDevice() возвращает null при выполнении в службе Windows
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-устройствам? Может ли кто-нибудь рекомендовать хороший источник информации о разработке служб Windows, использующих OPOS .NET?
Вы разрешили эту проблему? У меня проблема с тем, что Open() терпит неудачу при запуске внутри ASP.NET для одного конкретного устройства независимо от пользователя IIS (но отлично работает для всех остальных OPOS-устройств). –
@Peter Beacom я тоже сталкивался с подобной проблемой. Но проблема не возникает, когда я использую Visual Studio 2005 в Windows 7. И он отлично работает во всех IDE в Windows XP. – TutuGeorge
Эта проблема решена. Как было предложено Doobi, проблема была не в коде, а в настройках безопасности рабочей станции. –