На одном из двух полностью идентичных рабочих серверов кластера попытка получения, видимо, любого COM-объекта стала завершаться ошибкой "Недопустимая строка с указанием класса".
Это, например,
Новый COMОбъект("ADODB.Connection");
Новый COMОбъект("WScript.Network");
ПолучитьCOMОбъект("LDAP://RootDSE");
В последнем случае ошибка - "Синтаксическая ошибка".
На втором сервере - все ОК.
Самое интересное, что под тем-же пользователем аналогичная команда power shell выполняется без ошибки!
Некоторое время назад на этой системе был инцидент с некорректной нехваткой лицензий (т.е. не выдаются лицензии при явно меньшем количестве сеансов). Лечится только перезапуском, админ перезапустил службы. Но, как выяснилось, на этом сервере остался выполняться "старый" rphost. В логах видна попытка запуска нового, который вскоре завершился. Как уж это получилось, установить уже невозможно.
Выяснилось также, что этот рабочий процесс был запущен уже достаточно давно, а перезапуск по превышению размера памяти не был настроен.
Установили настройки перезапуска по превышению, rphost перезапустился, т.к. уже набрал памяти прилично.
Все, ошибки сразу прекратились. COM-коннектор 64-бит, кстати не установлен, это не влияет на ADO и др.
Спасибо большое всем кто откликнулся!
В этом случае логически объяснить проблему было бы невозможно, глюк и все ) Извините )
(1) Из системных требований к 8.3.11(а значит и всех последующих)
Для Windows Vista SP1, Windows 7, Windows Server 2008 SP1 или Windows Server 2008 R2 нужно установить последний пакет обновлений для работы с внешними соединениями (COM connector) и консолью кластера;
В платформе нуралиевские бракоделы в СОМ АДО испортили. RootDSE получить не получится, как не получится выполнить любой запрос к АД без прямого указания домен-контроллера. Это справедливо для платформы 8.3.13.1513, возможно и для более ранних. На 8.3.10.2580 ещё всё работало.
Какая у вас версия ?
К тому же, comcntr.dll, насколько я понимаю, имеет отношение только к работе с V83.COMConnector, а не к получению других COM-объектов (ADO, AD, WScript.Network).
(12) Обёртку для интерфейса оно создаёт и обслуживает. Возможно, что АДО-объект и без comcntr создатся, но полноценно работать с ним вы не сможете. Также невозможно будет использовать конструкции типа ДСО=ПолучитьCOMОбъект("LDAP:").
Обратите внимание из-под какого аккаунта запущен 1с-сервер, возможно, что проблемы там.
(7)Кстати, читал как то что в случаях когда просто перерегистрация не решает проблем с COM соединениями, то помогает сначала принудительно снять библиотеку с регистрации (regsvr32 /u) и затем уже регистрировать заново.
Ещё один возможный корень проблем с АД - запуск 1с-сервера с локальным (недоменным) аккаунтом. Угадайте, знает что-либо локальный аккаунт про домен, а домен про аккаунт ? ;) Что будет, если запрос подаётся с доменного компа, но с локального аккаунта ?
Некоторое время назад на этой системе был инцидент с некорректной нехваткой лицензий (т.е. не выдаются лицензии при явно меньшем количестве сеансов). Лечится только перезапуском, админ перезапустил службы. Но, как выяснилось, на этом сервере остался выполняться "старый" rphost. В логах видна попытка запуска нового, который вскоре завершился. Как уж это получилось, установить уже невозможно.
Выяснилось также, что этот рабочий процесс был запущен уже достаточно давно, а перезапуск по превышению размера памяти не был настроен.
Установили настройки перезапуска по превышению, rphost перезапустился, т.к. уже набрал памяти прилично.
Все, ошибки сразу прекратились. COM-коннектор 64-бит, кстати не установлен, это не влияет на ADO и др.
Спасибо большое всем кто откликнулся!
В этом случае логически объяснить проблему было бы невозможно, глюк и все ) Извините )
стала выпадать ошибка на Новый COMОбъект("ADODB.Connection");
Настройки SQL / прав / пользователей не менялись. Только останавливали службу, удаляли временные файлы и запускали обратно.
перерегистрация dll не помогла.
Остановили службу, увидели зависшие процессы, завершили их, запустили службу - все работает.