Имя: Пароль:
IT
Админ
Отваливаются COM-порты в терминальной сессии
0 sulye
 
06.01.11
20:12
Добрый день.
Есть Terminal Server Windows 2003 sp2 32bit.
Есть RDP-клиенты под Windows 7 HB x64, к которым подключено различное торговое оборудование через USB-RS232 переходники.
Всё подключается и работает в 1С 7.7.
Но после увеличения числа клиентов, стали наблюдаться сбои такого вида:
1С не реагирует на считывание магнитной карты либо штрихкода. Помогает только переинициализация драйвера. После некоторых тестов удалось выяснить, что 1С не "виновата", а именно:

на примере гипертерминала:

подключаемся, считываем, отключаемся, пробуем подключиться и "COM-порт недоступен", проверяем командой change port - действительно - порта нет. Считываем на устройстве что угодно, change port - порт есть, можно работать.

Т.е. такое впечатление, что Terminal Server отключает устройство, пока из него не идёт данных, а при появлении последних снова подключает. Зачем он это делает, электроэнергию экономит или ещё зачем - чёрт его знает.
Повторю, что такое поведение присутствует даже без 1C.

Google не помогло, в документации ничего не нашёл насчёт отключения неиспользуемых портов. Может кто сталкивался?

P.S. Для успокоения совести пробовался Windows 2008R2 x64, 1C8.2 с различными драйверами, разные модели Virtual COM - результат одинаковый. Возможно дело в клиенте Windows 7, т.к. до этого на XP данной проблемы вроде бы не было.
1 vudo
 
06.01.11
22:09
Проброс портов поаробуй сделать. Например Tibbo.
2 Neg
 
06.01.11
22:31
В пользователях проставь в энергосбережении никогда, всё никогда. Стоит? Не 22 см, а энергосбережение.
3 sulye
 
07.01.11
11:47
На клиентах Windows 7 в свойствах энергосбережения - USB-устройства стоит (не 22 см, и даже не 16), а НИКОГДА не отключать.
Или где это "В пользователях" ?
4 smaharbA
 
07.01.11
11:49
не знаю
5 Torquader
 
07.01.11
22:33
На клиенте:
- Отключить энергосбережение компьютера.
- У каждого устройства в "Диспетчер устройств" отключить "Выключать устройство для экономии энергии".
- Задать наименьшее возможное имя для порта (например COM3).
6 sulye
 
08.01.11
10:23
Torquader:
Это всё сделано, проблема всё равно проявляется.
7 Mагистр
 
08.01.11
11:02
Закладка - та же фигня - в терминальном после спящего режима отваливается...
8 Mагистр
 
08.01.11
11:03
(5) Этим не лечится - проходили - тупо заново инициализирую кнопкой на форме - пока так пришлось выкручиваться.
9 Mагистр
 
08.01.11
11:05
т.е. проблема такая - пользователь пришел - включил ТИС в терминале - посканировал - все ок - пошел курить - терминал отрубился - набрал пароль, вошел - сканера нет - нажал кнопку на форме: " активизировать сканер"... другого не смог придумать...
10 Mагистр
 
08.01.11
11:06
причем в не терминальном режиме такого не происходит НИКОГДА!
11 Neg
 
08.01.11
11:11
(7) Так отключи спящий режим.
12 sulye
 
08.01.11
11:20
Магистр, это ещё полбеды - у меня нажать на кнопку мало, нужно ещё что-то считать вхолостую, чтобы порт поднялся и потом нажать кнопку, если не считать его как бы нет совсем, сканера 2, вот код инициализации:

=========================================================

   //Scaner = NicaaouIauaeo("AddIn.Scaner45"); // Это глобальная переменная, она при старте системы инициализируется
   Scaner.CurrentDeviceNumber = 1; //Сканер штрихкодов
   Scaner.Model = 0;
   
   Scaner.PortNumber = 5;  
   
   Scaner.DeviceEnabled=1;            
   
   Если (Scaner.ResultCode <> 0) Oiaaa
       Сообщить("Сканер штрихкодов НЕ подключен.");
   Иначе
       Сообщить("Сканер штрихкодов подключен.");
   КонецЕсли;

   Scaner.CurrentDeviceNumber = 2; // Считыватель магнитных карт
   
   Scaner.Model = 1;    
   
   Scaner.PortNumber = 4;  
   
   Scaner.DeviceEnabled=1;
   
   Если (Scaner.ResultCode <> 0) Oiaaa
       Сообщить("Считыватель магнитных карт НЕ подключен.");
   Иначе
       Сообщить("Считыватель магнитных карт подключен.");
   КонецЕсли;
   
   Scaner.AutoDisable = 1;
   Scaner.DataEventEnabled = 1;
   
   // Дальше инициализируется ФР, с ним почему-то проблем нет

=========================================================

может тут что криво?
13 Torquader
 
08.01.11
14:24
У меня почему-то терминалы не отключаются - как пользователь вошёл, так оно и работает - просто отключили энергосбережение на сервере и в свойствах каждого пользователя был выключен Screen Saver как в терминале, так и на локальной машине.
14 sulye
 
08.01.11
16:58
Torquader, а подскажите где Вы это всё отключали, может я не там где-то отключаю?
15 Torquader
 
08.01.11
17:15
Заходим на клиенте и на сервере "Управление электропитанием" и запрещаем там переход в ждущий режим (то есть ставим "Никогда").
Потом заходим в свойства хранителя экрана под пользователем и выключаем хранитель (ну или хотя бы выключаем "Запрашивать пароль").
16 sulye
 
08.01.11
17:20
Это сделано...