Добрый вечер(во всяком случае у нас

)! Будет немного длинно, но, по-моему, это оправдано. Есть приложение (отдельное спасибо эксперту pugv за подсказки), забирающее по ОРС из RSView32 некоторые теги и отправляющее их в БД. Есть SCADA TraceMode, которая тоже берёт там же другие теги и использует их, как ей надо. В некоторый момент комп с TraceMode умер и его заменили новым. Естественно, что настройки DCOM на компе с TraceMode никто не помнит. Нахрапом настроить не получилось! Тогда — в ночную смену — два умника сели рядом с телефонами и компами и понеслась... Связи TraceMode c RSView так и не добились, но, после всех манипуляций, перестала запускаться и моя программа!!! Она находится на том же компе, что и RSView!!! Дело в том, что некоторые манипуляции с DCOM требуют перезагрузки компа. Моя программа стоит в автозагрузке, размещается в трее и никому не мешает. Хорошо, что (в общем-то, просто забыл) не выключил подробный лог, нужный для отладки. Поэтому, когда наехали, что в БД нет ни фига, из лога выяснил, что вылетаю после попытки подключиться к ОРС-серверу! Т.е. CoCreateInstance при подключении к серверу возвращает E_ACCESSDENIED

Отсюда вопрос — что такого можно изменить в DCOM, чтобы перестало запускаться приложение на локальной машине?
Здравствуйте, xlich, Вы писали:
X>Добрый вечер(во всяком случае у нас
)! Будет немного длинно, но, по-моему, это оправдано. Есть приложение (отдельное спасибо эксперту pugv за подсказки), забирающее по ОРС из RSView32 некоторые теги и отправляющее их в БД. Есть SCADA TraceMode, которая тоже берёт там же другие теги и использует их, как ей надо. В некоторый момент комп с TraceMode умер и его заменили новым. Естественно, что настройки DCOM на компе с TraceMode никто не помнит. Нахрапом настроить не получилось! Тогда — в ночную смену — два умника сели рядом с телефонами и компами и понеслась... Связи TraceMode c RSView так и не добились, но, после всех манипуляций, перестала запускаться и моя программа!!! Она находится на том же компе, что и RSView!!! Дело в том, что некоторые манипуляции с DCOM требуют перезагрузки компа. Моя программа стоит в автозагрузке, размещается в трее и никому не мешает. Хорошо, что (в общем-то, просто забыл) не выключил подробный лог, нужный для отладки. Поэтому, когда наехали, что в БД нет ни фига, из лога выяснил, что вылетаю после попытки подключиться к ОРС-серверу! Т.е. CoCreateInstance при подключении к серверу возвращает E_ACCESSDENIED
Отсюда вопрос — что такого можно изменить в DCOM, чтобы перестало запускаться приложение на локальной машине?
Из настроек OPC сервера эккаунт не удалили случаем?
Можно посмотреть системные логи.
Для этого установить следующие параметры реестра:
CallFailureLoggingLevel
ActivationFailureLoggingLevel
InvalidSecurityDescriptorLoggingLevel
и включить аудит на Logon и на Object access (failures).
Здравствуйте, 5er, Вы писали:
5er>Из настроек OPC сервера эккаунт не удалили случаем?
5er>Можно посмотреть системные логи.
5er>Для этого установить следующие параметры реестра:
5er>CallFailureLoggingLevel
5er>ActivationFailureLoggingLevel
5er>InvalidSecurityDescriptorLoggingLevel
5er>и включить аудит на Logon и на Object access (failures).
Нет — аккаунт не удалён. Ввёл указанные ключи, настроил их по рекомендациям из ссылок, включил нужные аудиты, запускал приложение. Получил такое системное сообщение:
Настройки разрешений зависящие от конкретного приложения не предоставляют разрешение Локально Активация для приложения сервера COM Server с CLSID
{E9F9ED00-7705-101B-9802-0000C07B665C} пользователю PROG-CON\operator SID (S-1-5-21-1214440339-854245398-1177238915-1006). Это разрешение можно изменить с помощью средства администрирования Component Services.
что, в общем-то, и так было понятно. Настроил разрешение для пользователя таким образом, что ядро системы должно спрашивать у меня — запускаться или нет

. Результат тот же! Попробую за выходные что-нибудь нагуглить. Не получится, останется самый верный способ — мочить винду и ставить RSView заново
X>X>Настройки разрешений зависящие от конкретного приложения не предоставляют разрешение Локально Активация для приложения сервера COM Server с CLSID
X>{E9F9ED00-7705-101B-9802-0000C07B665C} пользователю PROG-CON\operator SID (S-1-5-21-1214440339-854245398-1177238915-1006). Это разрешение можно изменить с помощью средства администрирования Component Services.
X>что, в общем-то, и так было понятно. Настроил разрешение для пользователя таким образом, что ядро системы должно спрашивать у меня — запускаться или нет
. Результат тот же! Попробую за выходные что-нибудь нагуглить. Не получится, останется самый верный способ — мочить винду и ставить RSView заново
Что значит спрашивать? Там (dcomcnfg -> Службы компонентов -> Компьютеры -> Мой компьютер -> Настройка DCOM -> Ваш сервер -> Свойства -> Безопасность -> Разрешения на запуск и активацию) всего 4 разрешения — локальные/удаленные запуск и активация. Конкретному пользователю их можно либо дать, либо нет...