Не удалось подключиться к другой программе 2147467238 0x8000401a процесс сервера

В рамках этого занятия необходимо изучить следующие материалы.

Модуль 5. Кластер серверов

    Глава 11. Расследование проблем стабильности
  • Проблемы стабильности. Очистка кэша сервера 1С
  • Расследование падений процессов и «зависаний»
  • Утечки памяти. Фрагментация адресного пространства
  • Ошибки связанные с лицензированием

Практические задания

Скачивайте практические задания в формате PDF:

К сожалению, у Вас недостаточно прав для дальнейшего просмотра.

Если Вы приобрели курс, но еще не активировали токен — пожалуйста, активируйте доступ по инструкциям, высланным на Ваш email после покупки.

Если Вы не залогинены на сайте — залогиньтесь, вернитесь на эту страницу и обновите ее.

Если Вы залогинены, у Вас активирован токен доступа, но Вы все равно видите эту запись — напишите нам на e-mail поддержки.

Вопрос из свежей практики.
Ситуация следующая:
1. Есть сервер 1с82 на Linux + postgres

Не удалось выполнить подключение. У этого компьютера возможность подключения ограничена.


2. Есть сервер терминалов на win2008r2
3. Приняли нового сотрудника. Настроили ему доступ в 1с с офисного ПК в режиме толстого клиента и терминальный доступ для работы из дома.
4. 1С:Предприятие 8.2 (8.2.19.83) Через неделю работы у него перестала запускаться 1с в терминале. Прорисовывается интерфейс и 1с уходит в бесконечную задумчивость.
На локальном ПК в офисе 1с у пользователя работает нормально.
При запуске в терминального сеанса и входе в 1с неё другим пользователем – 1с работает.
Т.е. при входе в 1с под конкретным пользователем 1с – 1с висит. На втором локальном ПК вход под проблемным пользователем тоже работает.
Пробовал входить на терминальный сервер другим пользователем с адм правами и входить в 1с под проблемным пользователем – 1с тоже висит. Что пробовал:
Чистить кэш 1с в на терминальном сервере у проблемного пользователя.
Полностью удалил учетку пользователя на терминальном сервере и создал её заново.
Безрезультатно. До перезагрузки сервера и чистки серверного кэша пока не дошел. Предприятие работает круглосуточно, без крайней необходимости сервер перезагружать не хочется. Что может быть причиной такого поведения 1с и как это победить? upd. Не дождался и решил сам.
Чистка серверного кэша 1с не помогла, как и рестарт службы сервера 1с. Помог полный перезапуск сервера с 1с и субд.

Виталий Кривенко

Замечание по очистке кеша сервера 1с: в видео Вы указали папку, которую необходимо очистить, но так же сказали, что можно удалить и остальные папки “имя каталогов как идентификаторы. Их тоже можно смело удалить” (начиная с 1:58 видео). Но ведь в этих папках хранятся журналы регистрации баз. Журнал периодически нужен, когда возникают вопросы пользователей, например “а почему нет оборотов, документы помечены на удаление, это ваш обмен виноват” (это наболевшее)

Андрей Бурмистров

(текст комментария доступен только участникам Мастер-группы)

НЕПОДДЕРЖИВАЕМОЕ 16-РАЗРЯДНОЕ ПРИЛОЖЕНИЕ. Решение проблемы)


(текст комментария доступен только участникам Мастер-группы)
Андрей Бурмистров

(текст комментария доступен только участникам Мастер-группы)
oberon2000

Использую ЦУП 2.0.16.20(последний релиз на данный момент) и MS SQL 2012
При анализе “Анализ взаимоблокировок MS SQL Server” выдается ошибка
MSSQL.cpp : 109 ( 0x36b7: The requested lookup key was not found in any active activation context. ) – Query execution failed. Эта проблема ошибок ЦУПа или настроек соединения? Нужно ли обновлять модули ЦУПа 2.0.16.20 исправлениями из курса? Остальные показатели работают.

Андрей Бурмистров

(текст комментария доступен только участникам Мастер-группы)

В теме про программные лицензии говориться, что если платформа нашла более одного файла одной и той же программной лицензии, то эта программная лицензия станет не активной .
Эта лицензия станет не активной до какой поры ?? Пока не удалим лишнюю копию лицензии или нужны дополнительные действия??

Андрей Бурмистров

(текст комментария доступен только участникам Мастер-группы)

Замечание по заданию 52. Считаю что решение не соответствует заданию. Если вы пишете что “Причины выясняются, но сейчас стоит приоритетная задача обеспечить стабильную работу пользователей.” то, предполагаю, что ТЖ уже настроен как надо, и сбор информации уже идет. Соответственно все решение сводится к
установке ограничений по памяти для рабочих процессов в настройках кластера. Также в условии написано “_Периодически_ рабочий процесс занимает почти всю свободную память.”, а решении предлагается отключать такой процесс вручную. Т.е. отключать процесс нужно тоже “периодически” и вручную? Складывается впечатление что в решении собрали все что имеет хоть какое то отношение к фразе проблеме без оглядки на условие задачи.

Андрей Бурмистров

(текст комментария доступен только участникам Мастер-группы)

Андрей, после смены релиза платформы на 8.3.6.2237 при запуске обработки универсального обмена между двумя базами эпизодически возникает ошибка:
При попытке соединения с COM-сервером произошла следующая ошибка:
: Ошибка при вызове конструктора (COMОбъект): -2147467238(0x8000401A): Процесс сервера не может быть запущен, так как указана неправильная идентификация. Проверьте правильность указания имени пользователя и пароля. При этом пользователь и пароль, под которым создается СОМ-соединение, заданы верно. Лечится перезапуском агента приложения. Не подскажите – с чем это может быть связано, что и где ловить?

Андрей Бурмистров

(текст комментария доступен только участникам Мастер-группы)
oberon2000

Версия 1с 8.3.6(актуально и для других) – если очищать кэш сервера, то не забывайте очищать и кэш клиента – иначе при попытки запуска в режиме конфигуратора будет ругаться страшными словами про разрушенную конфигурацию!

Андрей Бурмистров

(текст комментария доступен только участникам Мастер-группы)
oberon2000

Остановил сервер 1С. Очистил каталог snccntx а если уж совсем точно то snccntx1d267dcf-55b1-49a8-8e36-e355baaa2c52. Запустил сервер 1С.
После попытался открыть конфигуратор – а там уже ругательства. Что примечательно – в режиме клиента никто не жаловался все работало.
Т.к. очищал первый и единственный раз, то возможно это не массовое явление – утверждать не берусь.

allegrosoft
Андрей, можно ли с помощью ТЖ выявить утечки памяти в 8.1?
Андрей Бурмистров

(текст комментария доступен только участникам Мастер-группы)

При переборе Результата запроса методом выбрать() – данные выгружаются в память рабочего процесса порционно.
Хотел бы уточнить следующий момент: после каждой итерации память рабочего процесса очищается или нет? Если нет то в чем именно тогда “выгода” по сравнению с выгрузкой в таблицу значений.

Андрей Бурмистров

(текст комментария доступен только участникам Мастер-группы)

Если перенести один из сервисов (например фоновых заданий) на отдельный сервер, который выйдет из строя. Что произойдет с сервисом, “вернется” ли он на работающий севрер?

Читайте также:
Понятие о компьютерных программах

Андрей Бурмистров

(текст комментария доступен только участникам Мастер-группы)
Спасибо большое!

Андрей, не могу найти ответ на вопрос “Как происходит подсчет количества лицензий в облачных сервисах”.
Не могли бы подсказать ответ или ссылку, где можно посмотреть информацию на эту тему?

Андрей Бурмистров

(текст комментария доступен только участникам Мастер-группы)

Вопрос по ошибке “Не обнаружен ключ защиты программы”.
Тех причин, которые были озвучены в видеокурсе, будет достаточно на экзамене?
Есть ли ещё какие-то причины, которые стоит назвать?

Андрей Бурмистров

(текст комментария доступен только участникам Мастер-группы)

Андрей, а Вы можете ещё какие-то причины назвать? И есть ли какой-то источник, где можно почитать о работе ключа защиты 1С?
Может ли проблема быть из-за занятого порта? И ещё один момент.
В дополнительных вопросах для самопроверки есть вопрос 3.
“Во время работы системы у различных пользователей возникает ошибка Не обнаружен ключ защиты программы…”. Здесь причины те же?

Андрей Бурмистров

(текст комментария доступен только участникам Мастер-группы)

Андрей, возник следующий вопрос.
В базе 1С время от времени, при выполнении различных действий, возникает ошибка: Ошибка SDBL. Ошибка обращения к ресурсу Post.. и что-то там ещё. Как можно расследовать данную проблему?
Настроил ТЖ с фильтром EXCP, но не совсем понимаю, чем мне это должно помочь. Да, в логах виден контекст, пользователь, и т.д. Но что с этим делать дальше?

Андрей Бурмистров

(текст комментария доступен только участникам Мастер-группы)

Ошибку в принципе я могу воспроизвести.
Она проявляется в самых разных ситуациях.
Например, иногда просто при открытии формы списка справочника, причем формы в конфигураторе нет, т.е открывается форма по умолчанию.
Иногда при открытии документа или при выполнении больших запросов. Я так понимаю, в такой ситуации ТЖ мне уже никак не сможет помочь?
Единственный вариант – “попробовать перейти на новый релиз платформы” или покопаться в багтрекере? Да, и можно ли в этом случае написать какой-нибудь официальный запрос в 1С с указанным рег. номером купленной программы 1С?

Андрей Бурмистров

(текст комментария доступен только участникам Мастер-группы)

Сталкивался с тем что тех поддержка отказывалась рассматривать запрос если нет активной подписки на ИТС. Несмотря на то что найденная мной ошибка – была ошибкой платформы и никак не зависела от конкретной конфигурации. В моем случае платформа выдавала разный результат функции РАЗНООСТЬДАТ в запросе на файловой базе и в Postgresql.

Андрей Бурмистров

(текст комментария доступен только участникам Мастер-группы)
Иван Татарников

Здравствуйте.
Проблема следующая.
Платформа 8.3.5.1119. Настроен автоматический перезапуск рабочих процессов – 86400. Где-то несколько раз в месяц во время перезапуска получается такая ситуация: старый процесс отключается, а новый запускается и сразу же останавливается. В ТЖ собирал события PROC и EXCP, но в них было только сообщение о том, что процесс аварийно завершился и не найден.
Почему такое может быть? Как можно подробнее это расследовать?

Андрей Бурмистров

(текст комментария доступен только участникам Мастер-группы)
Иван Татарников

Сбор дампов в ТЖ включен –
Но дампы для рабочих процессов не образуются в этом случае.
Подумал сначала, что ошибся в настройке ТЖ, но дампы для агента сервера собираются, когда перезапускаешь службу.

Андрей Бурмистров

(текст комментария доступен только участникам Мастер-группы)

Добрый день! Столкнулся сейчас с явной утечкой памяти. При открытии форм (документов, списков документов) и последующем закрытии остается занятой некоторая дополнительная память. Если открываю тот же список документов, значение не увеличивается, если что-то другое – растет.

Для простых форм это мизерные значения, но вот есть конфигурация с “навороченными” многослойными формами, картинками, динамическим рисованием кнопок и т.п. – там одно открытие документа отъедает несколько мб. На первый взгляд ничего криминального в модуле формы не происходит, значит, нужно копать глубже. По вашему опыту, какие действия наиболее подозрительные – условное оформление, динамическое создание элементов. Или это вообще нормальное поведение платформы? Толстый клиент, обычные формы, релиз 8.2.19.130

Андрей Бурмистров

(текст комментария доступен только участникам Мастер-группы)

В данном случае это файловая конфигурация и память занимает на клиенте, но поскольку это вариант размещения всех клиентов на сервере терминалов, один пользователь имеет неплохой шанс испортить остальным жизнь. В этом случае тоже занятая одним пользователем память должна выходить на “насыщение” и можно ли как-то регулировать предельный объем?

Андрей Бурмистров

(текст комментария доступен только участникам Мастер-группы)

Добрый день не подскажете о чем говорит нам ошибка “Соединение с сервером разорвано по инициативе сервера”. Возникает после динамического обновления если количество рабочих процессов >1. Проблему решает добавление еще одного рабочего процесса. Просто не особо понятно что не так.

Андрей Бурмистров

(текст комментария доступен только участникам Мастер-группы)

Добрый день, Андрей! В профессионале по тех. вопросам есть вопрос:
“Куда именно помещаются данные при выполнении ПоместитьВоВременноеХранилище?”.
Правильный ответ: В хранилище сеансовых данных с другими параметрами сеанса. Сеансовые данные содержат информацию, которую можно посмотреть в кластере серверов на закладке “Сеансы”. Где можно посмотреть информацию о временном хранилище?

Андрей Бурмистров

(текст комментария доступен только участникам Мастер-группы)

Добрый день, Андрей. Я недавно разбирал большой запрос в Profiler и увидел ряд не ясных действий, подскажите, пожалуйста, их причину:
1. Если в первом запросе пакета на вход подается таблица, то судя по профайлеру происходит следующее:
– Сначала создается временная таблица #tt1.
– В нее по одиночке вставляется каждая запись, т.е. если ТЗ была из 100 строчек, то будет 100 Insert.
– Затем создается временная таблица #tt2 и в нее переносятся все записи #tt1.
Вопрос заключается в том, что всегда ли такой алгоритм? Если, да, то есть ли какие-то замечания или ограничения по использованию передачи ТЗ как входящего параметра запроса? 2. Есть запрос, результат которого помещается во временную таблицу с индексацией. В Profiler происходит следующее:
– Выполняется событие SQL BatchComleted с созданием временной таблицы #tt1.
– Событие SQL BatchComleted, для этой таблицы включается кластерного индекса.
– Несколько событий подряд Showplan statistic profile, в которых зачем-то происходит сканирование этого кластерного индекса, сортировка и затем агрегация. Таких событий идет несколько подряд.
– И только потом событие Showplan statistic profile и RPC:Complited с выполнением самого запроса выбора данных из регистра.
Вопрос заключается в том, почему такой порядок выполнения?
Почему создается именно кластерный индекс, а не обычный для временной таблицы?
Зачем выполняется ряд действий со сканированием, сортировкой и агрегацией кластерного индекса?
Почему эти действия с кластерным индексом идут до выполнения запроса с получением данных?

Читайте также:
Какой программой открывать map

Андрей Бурмистров

(текст комментария доступен только участникам Мастер-группы)

Прикладываю файл трассировки.
По пункту 1: строки 11,14,17,20,23,26 и т.д.
По пункту 2: строки 96 (сам запрос), 100, 102, 104, 106, 108 и т.д. (сканирование кластерного индекса временной таблицы, его сортировка и агрегация). Про вставку ТЗ (1) в параметр запроса: почему эти действия выполняются по-штучными операциями, а не одной групповой (к примеру bulk insert)?
По пункту 2: зачем нужны операции по строке 100, 102 и т.д.?

Источник: xn—-1-bedvffifm4g.xn--p1ai

8.3.6.2014. Проблема с созданием COM-коннектора #744526

Добрый день. Поставили себе новую платформу 8.3.6. При выполнении следующего кода: вылетает ошибка: -2147467238(0x8000401A): Процесс сервера не может быть запущен, так как указана неправильная идентификация. Проверьте правильность указания имени пользователя и пароля. Причем: 1. На клиенте работает, на сервере не работает 2. У одного пользователя работает, у другого не работает 3. У одного и того же пользователя то работает, то не работает Можете подсказать, в чем может быть проблема?

#1 by Господин ПЖ
#2 by CerbeRUS
Запускали больше 10 раз
#3 by andrey153
аналогичная проблема при переходе с 8.3.5 на 8.3.6
#4 by BigRig
И как Вы её решили?
#5 by andrey153
никак, мучаемся
#6 by CerbeRUS

Если поможет, на сервере стоит ОС Microsoft Windows Server 2008 R2 Standard Версия 6.1.7601 Service Pack 1.

#7 by ИА1С

V83.COMConnector зарегистрирован? И он один. У меня при переходе была такая проблема. Снес всех и заново зарегистрировал компоненту.

#8 by КатринСС

Панель управления, администрирование, службы компонентов, приложения com+, v83comconnector, свойства, закладка «удостоверение» ввести данные доменной учетной записи

Источник: avprog.ru

Не удалось подключиться к другой программе 2147467238 0x8000401a процесс сервера

Здравствуйте, Jolly Roger, Вы писали:

JR>Но если таки надумаете вернуться к вопросу, дайте знать, любопытно всё-таки

Проблема оказалась не в com’е, а в прокладке между сиденьем и клавиатурой. Когда добавлял проверку на наличие админских прав, я по глупости убрал из под пользователя не только запись в реестр, но и вызовы RegistrationServices.RegisterTypeForComClients. Естественно, что после этого программа под пользователем начала подниматься повторно.

Re[3]: Проблема с обращением через Com под пользователем

От: Jolly Roger
Дата: 27.10.10 13:07
Оценка: 10 (1)

Здравствуйте, Undying, Вы писали:

Должен предупредить, на всякий случай, что СОМ-серверы на NET я пока не пробовал, всё руки не доходят. Зато опыт работы с СОМ довольно в нативе приличный, исходя из него и пишу.

U>Когда я указываю, что запуск нужно производить от учетной записи с админскими правами, то перестает работать даже из под этой же учетной записи. Падает с ошибкой 8000401a. Хотя, если выбирать второй вариант — запуск из под запускающего пользователя, то из под этого пользователя работает нормально.

Процесс сервера не может быть запущен, так как указана неправильная идентификация. Проверьте правильность указания имени пользователя и пароля

То есть где-то Вы косячите. Проверяйте внимательно, что-то здесь не так. Со своей стороны, я не припомню подобной проблемы.

U>И в настройках безопасности самого Com-объекта и в Мой компьютер -> Безопасность Com все права вроде этому юзеру даны. Больше никаких мест для настройки нет?

Да нет, всё здесь настраивается. дефолтные перекрываются конкретными для данного сервера. Есть ещё, правда, общие разрешения на работу DCOM, задаются политикой и могут быть перекрыты доменом. Но это дела админские, я сейчас с ходу не скажу, что и как там должно быть, надо вспоминать.

U>И еще вопрос, можно ли как-то настроить все необходимые права на Сом автоматически из программы запущенной с админскими правами?

Можно, всё можно. Собственно права доступа сохраняются в AppId в виде сериализованного дескриптора безопасности. Вот здесь лежит утилита, которая может по заданному сценарию настраивать безопасность для существующего AppId. Но RunAs она не меняет, и причина в том, что для указания конкретного юзера нужен его пароль. Сохранить его не сложно, делается это с помощью LsaStorePrivateData, но вставлять его в сценарий небезопасно.

«Нормальные герои всегда идут в обход!»
Re[5]: Проблема с обращением через Com под пользователем

От: Jolly Roger
Дата: 28.10.10 04:24
Оценка: 5 (1)

Здравствуйте, Undying, Вы писали:

А, то есть Вы её сначала вручную запускаете? Тогда конечно, COM проверит соответствие настроек безопасности текущему принципалу и вернёт ошибку. Для таких приложений надо ставить удостоверение «текущий юзер». Кроме того, внутри приложения создавать объект через COM можно, но не обязательно. Иногда предпочтительней создать объект напрямую, иногда — через COM.

U>Если же вместо запуска под конкретной учеткой стоит запуск из под текущего или запускающего пользователя, то если программа запущена из под пользователя, то поднимается второй экземпляр, что нам не нужно. При запуске программы из пользователя с правами админа все работает нормально. Т.е. непонятно, почему Com считает, что нужно поднять второй экземпляр, если уже есть поднятый Com-сервер с правами пользователя?

Это действительно странно. То есть второй экземпляр запускается под тем-же юзером? А OS у Вас какая? Можете набросать минимальный воспроизводящий ситуацию компилируемый пример?

«Нормальные герои всегда идут в обход!»
Проблема с обращением через Com под пользователем

От: Undying
Дата: 27.10.10 03:42
Оценка:

Есть дотнетовская программа, в которой используются отчеты Fast Report. Отчеты получают данные из программы через Com-интерфейс. Для того, чтобы запускался только один экземпляр программы Com-сервер зареген как outproc. Под администратором все работает. Но при запуске под пользователем почему-то происходит запуск второго экземпляра программы.

После того как на своем компьютере дал пользователю в настройках Com-объекта полные права на «Разрешение на настройку» у меня проблема решилась, однако пользователь жалуется, что ему это не помогает.

Не сталкивался ли кто-нибудь с подобной проблемой? Можно ли вообще сделать, чтобы outproc Com-сервер нормально работал под пользователем с дефолтными настройками?

Создание Сом-объекта делаем так:

t = Type.GetTypeFromProgID(progid); myComObj = Activator.CreateInstance(t);
RegistrationServices rs = new RegistrationServices(); if (str == «register») < RegisterManagedType(typeof(ComServer)); > rs.RegisterTypeForComClients( typeof(ComServer), RegistrationClassContext.RemoteServer | RegistrationClassContext.LocalServer | RegistrationClassContext.InProcessServer, RegistrationConnectionType.MultipleUse);
Re: Проблема с обращением через Com под пользователем

От: Jolly Roger
Дата: 27.10.10 08:59
Оценка:
Читайте также:
Ultraiso платная или бесплатная программа

Здравствуйте, Undying, Вы писали:

U>Есть дотнетовская программа, в которой используются отчеты Fast Report. Отчеты получают данные из программы через Com-интерфейс. Для того, чтобы запускался только один экземпляр программы Com-сервер зареген как outproc. Под администратором все работает. Но при запуске под пользователем почему-то происходит запуск второго экземпляра программы.

Если в настройках безопасности сервера не указано, от кого запускать, то используется дефолтное значение «подключившийся пользователь». При этом для каждого клиента запускается отдельный экземпляр сервера. Для преодоления нужно изменить в настройках безопасности на запуск от имени либо интерактивного юзера, либо, что лучше, от имени конкретной учётной записи. Кроме того, нужно настроить разрешения на подключение. Подробнее о настройке здесь

«Нормальные герои всегда идут в обход!»
Re[2]: Проблема с обращением через Com под пользователем

От: Undying
Дата: 27.10.10 10:09
Оценка:

Здравствуйте, Jolly Roger, Вы писали:

JR>Если в настройках безопасности сервера не указано, от кого запускать, то используется дефолтное значение «подключившийся пользователь». При этом для каждого клиента запускается отдельный экземпляр сервера. Для преодоления нужно изменить в настройках безопасности на запуск от имени либо интерактивного юзера, либо, что лучше, от имени конкретной учётной записи. Кроме того, нужно настроить разрешения на подключение. Подробнее о настройке здесь

Когда я указываю, что запуск нужно производить от учетной записи с админскими правами, то перестает работать даже из под этой же учетной записи. Падает с ошибкой 8000401a. Хотя, если выбирать второй вариант — запуск из под запускающего пользователя, то из под этого пользователя работает нормально.

И в настройках безопасности самого Com-объекта и в Мой компьютер -> Безопасность Com все права вроде этому юзеру даны. Больше никаких мест для настройки нет?

И еще вопрос, можно ли как-то настроить все необходимые права на Сом автоматически из программы запущенной с админскими правами?

Re[2]: Проблема с обращением через Com под пользователем

От: Undying
Дата: 27.10.10 10:35
Оценка:

Здравствуйте, Jolly Roger, Вы писали:

JR>Если в настройках безопасности сервера не указано, от кого запускать, то используется дефолтное значение «подключившийся пользователь». При этом для каждого клиента запускается отдельный экземпляр сервера. Для преодоления нужно изменить в настройках безопасности на запуск от имени либо интерактивного юзера, либо, что лучше, от имени конкретной учётной записи. Кроме того, нужно настроить разрешения на подключение. Подробнее о настройке здесь

Вообще может быть проблема в следующем. Вначале мы запускаем дотнет программу, являющуюся Com-сервером, а затем из этой же программы обращаемся к Com-серверу, т.е. как бы сами к себе. Возможно поэтому запуск из под конкретной учетки и не работает, т.к. получается, что с одной стороны мы требуем, что экземпляр Сом-сервера был только один, а с другой он уже запущен под другой учеткой.

Re[3]: Проблема с обращением через Com под пользователем

От: Jolly Roger
Дата: 27.10.10 13:10
Оценка:

Здравствуйте, Undying, Вы писали:

U>Вообще может быть проблема в следующем. Вначале мы запускаем дотнет программу, являющуюся Com-сервером, а затем из этой же программы обращаемся к Com-серверу, т.е. как бы сами к себе. Возможно поэтому запуск из под конкретной учетки и не работает, т.к. получается, что с одной стороны мы требуем, что экземпляр Сом-сервера был только один, а с другой он уже запущен под другой учеткой.

Не понял, в чём противоречие? Как приложение, обращаясь к самому себе, может обращаться под другой учёткой, если не выполнялась имперсонация?

Может Вы по-подробнее о происходящем у Вас расскажите?

«Нормальные герои всегда идут в обход!»
Re[4]: Проблема с обращением через Com под пользователем

От: Undying
Дата: 28.10.10 03:23
Оценка:

Здравствуйте, Jolly Roger, Вы писали:

JR>Не понял, в чём противоречие? Как приложение, обращаясь к самому себе, может обращаться под другой учёткой, если не выполнялась имперсонация?

Вот мы запускаем программу, которая является Com-server’ом, под пользователем (User). Соответственно она запускается с правами пользователя. Далее из под этой же программы мы обращаемся к самой себе через Com-интерфейс. Если в настройках данного Com-server’а стоит, что он должен запускаться под учеткой Admin, то что должно происходить? В реальности обращение через Com падает.

Если же вместо запуска под конкретной учеткой стоит запуск из под текущего или запускающего пользователя, то если программа запущена из под пользователя, то поднимается второй экземпляр, что нам не нужно. При запуске программы из пользователя с правами админа все работает нормально. Т.е. непонятно, почему Com считает, что нужно поднять второй экземпляр, если уже есть поднятый Com-сервер с правами пользователя?

Re[6]: Проблема с обращением через Com под пользователем

От: Undying
Дата: 28.10.10 04:45
Оценка:

Здравствуйте, Jolly Roger, Вы писали:

JR>А, то есть Вы её сначала вручную запускаете? Тогда конечно, COM проверит соответствие настроек безопасности текущему принципалу и вернёт ошибку. Для таких приложений надо ставить удостоверение «текущий юзер».

Понятно.

JR>Кроме того, внутри приложения создавать объект через COM можно, но не обязательно. Иногда предпочтительней создать объект напрямую, иногда — через COM.

В принципе мы уже решили для встроенных в программу отчетов FastReport Com не использовать, обращаться напрямую к нетовским dll’кам.

JR>Это действительно странно. То есть второй экземпляр запускается под тем-же юзером? А OS у Вас какая? Можете набросать минимальный воспроизводящий ситуацию компилируемый пример?

Да, второй экземпляр запускается под тем же юзером. OS XP Pro. Пример придется с нуля писать, сейчас времени на это нет. Вроде отказ от использования Com в наших стандартных отчетах остроту проблемы снимает, поэтому разбирательство с com’ом пока решили отложить.

Re[7]: Проблема с обращением через Com под пользователем

От: Jolly Roger
Дата: 28.10.10 05:10
Оценка:

Здравствуйте, Undying, Вы писали:

U>Да, второй экземпляр запускается под тем же юзером. OS XP Pro. Пример придется с нуля писать, сейчас времени на это нет. Вроде отказ от использования Com в наших стандартных отчетах остроту проблемы снимает, поэтому разбирательство с com’ом пока решили отложить.

Но если таки надумаете вернуться к вопросу, дайте знать, любопытно всё-таки

«Нормальные герои всегда идут в обход!»
Re[8]: Проблема с обращением через Com под пользователем

От: Undying
Дата: 28.10.10 07:38
Оценка:

Здравствуйте, Jolly Roger, Вы писали:

JR>Но если таки надумаете вернуться к вопросу, дайте знать, любопытно всё-таки

Хорошо. Я думаю вернемся, т.к. для взаимодействия с той же 1С альтернатив com’у все равно нет.

Источник: www.rsdn.org

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru