helpf.pro
Регистрация

V81.COMConnector : (VB.net) Как поймать ошибку аутентификации?

Kiber
17.03.2010 13:46Прочитано: 7004
Всем привет.

Использую 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 ^))
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
17.03.2010 14:22Ответ № 1
А что пишешь? если не секрет *06
Похоже ты не можешь подключиться к информационной базе, введи через конфигуратор какой-нибудь простой логин и пасс. Попробуй подключиться с ними.
Kiber
17.03.2010 14:40Ответ № 2
Задача тривиальна и обыденна как майсксий жук, а в данном случае - блокировка информационной базы.
Рассматривается вариант, когда аутентификация не прошла успешно и попытка изменить параметр объекта информационную базу выдает весьма странную ошибку. При этом, эти-же параметры доступны для чтения.

К мыслям:
Может-ли ошибка "OutOfMemoryException" возникать при попытке изменить read-only параметр COM-объекта?
Если да, то как на .net проверить что параметр является read-only?
E_Migachev
17.03.2010 14:50Ответ № 3
В net не силен, извини, не подскажу *09
Kiber
17.03.2010 15:00Ответ № 4
Ну, пока из мыслей сформулировались 2 варианта:
1. По другому (правильно) использовать com-объект для блокировки.
2. Проверить параметры COM-объекта таким образом, чтобы исключить ошибку (было предположение что они read-only).
AndreyVl
11.10.2010 15:55Ответ № 5
Возможно ошибаюсь, давно делал что то в этой области.
Агент - для управления .С его помощью можно управлять кластерами.Типа как конфигуратор в 1С.
ConnectWorkingProcess - Позволяет выполнять административные функции над рабочим процессом кластера.
Цитата
Соединение с рабочим процессом (IWorkingProcessConnection)
UpdateInfoBase (UpdateInfoBase)
Синтаксис:
UpdateInfoBase(<Информационная база>)
Параметры:
<Информационная база> (обязательный)
Тип: Информационная база. Информационная база с новыми значениями параметров. Новые значения могут иметь только следующие свойства объекта: Descr, ConnectDenied, DeniedFrom, DeniedTo, DeniedMessage, PermissionCode, DeniedParameter, ScheduledJobsDenied,
DBMS, dbServerName, dbName, dbUser, dbPassword.
Описание:
Устанавливает новые параметры существующей информационной базы.
Подсказка: Для выделения Кода используйте (в редакторе).
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.