|
Всем привет.
Использую COM-объект "V81.COMConnector" из VB.net, рассматриваемая цель - блокировка базы. Структура следующая:
1. Соединяюсь с агентом.
2. Получаю массив кластеров, перебираю их.
3. Прохожу аутентификацию на кластере с пустыми значениями
4. Получаю список рабочих процессов, перебираю их.
5. Открываю соединение с рабочим процессом.
6. Прохожу аутентификацию с логином и паролем, либо не использую аутентификацию, если использутеся NTLM.
7. Получаю список информационных баз, перебираю их.
8.1. (ОШИБКА) Пытаюсь изменить свойство ConnectDenied на True, выдает OutOfMemoryException.
8.2. Заполняю остальные параметры для блокировки базы.
9. Устанавливаю блокировку, вызвав метод UpdateInfoBase(<Информационная база>) соединения с рабочим процессом.
Собственно, корень ошибки мне понятен - неправильно пройдена аутентификация.
Однако, сама ошибка указывает либо не неправильную работу COM-объекта, либо неправильную работу С COM-объектом.
Внимание, вопрос:
Каким образом "правильно" проверить что аутентификация была пройдена успешно и что на информационную базу имеется нужный уровень доступа?
Мысли:
Смотрел несколько примеров блокировки базы с использованием COM-объектов, все примеры меняли свойство объекта, полученного указанным мною образом.
Это, однако, не означает, что все эти примеры работали с COM-объектом так, как задумывалось разработчиками 1С.
Это, в свою очередь, может означать, что полученный объект "информационная база" не предназначался для установки блокировки... Возможно, надо получить пустой объект "информационная база", заполнить его свойства и тогда при попытке вызывать метод UpdateInfoBase(<Информационная база>) соединения с рабочим процессом он выдаст ошибку, сгенерированную COM-объектом - "недостаточно доступа".
Позже допишу еще мысли, пока жду комментариев pro ^)) |
|