1с 2147467238 0x8000401a процесс сервера не может быть запущен



Не идёт синхронизация ЗУП и БП

НАрод подскажите, может кто сталкивался с такой проблемой и как решали. ЗУП 3.1.16.133 и БП 3.0.84.35 . Перестала работать синхронизация. В журнале такая ошибка. Имя пользователя и пароль верные точно.

Не удалось подключится к другой программе: -2147467238(0x8000401A): Процесс сервера не может быть запущен, так как указана неправильная идентификация. Проверьте правильность указания имени пользователя и пароля.
<ОбщийМодуль.ОбщегоНазначенияСлужебныйКлиентСервер.Модуль(393)>: COMConnector = Новый COMObject(ОбщегоНазначенияКлиентСервер.ИмяCOMСоединителя()); // «V83.COMConnector»
<ОбщийМодуль.ОбщегоНазначения.Модуль(2830)>: Возврат ОбщегоНазначенияСлужебныйКлиентСервер.УстановитьВнешнееСоединениеСБазой(Параметры, ПодключениеНедоступно, КраткоеОписаниеОшибки);
<ОбщийМодуль.ОбменДаннымиСервер.Модуль(12564)>: ЗаполнитьПараметрыПодключенияВнешнегоСоединения(СтруктураНастроек));
<ОбщийМодуль.ОбменДаннымиПовтИсп.Модуль(1185)>: РегистрыСведений.НастройкиТранспортаОбменаДанными.НастройкиТранспорта(
<ОбщийМодуль.ОбменДаннымиПовтИсп.Модуль(1164)>: Результат = ВнешнееСоединениеДляУзлаИнформационнойБазы(УзелИнформационнойБазы);
<ОбщийМодуль.ОбменДаннымиСервер.Модуль(6701)>: ВнешнееСоединение = ОбменДаннымиПовтИсп.ПолучитьВнешнееСоединениеДляУзлаИнформационнойБазы(
<ОбщийМодуль.ОбменДаннымиСервер.Модуль(3947)>: ВыполнитьДействиеОбменаДляУзлаИнформационнойБазыПоВнешнемуСо ­единению(Отказ,
<Обработка.ВыполнениеОбменаДанными.МодульМенеджера(38)>: ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы(
<(1)>:Обработки.ВыполнениеОбменаДанными.ВыполнитьЗапускОбменаДанными(Параметры[0],Параметры[1])
<ОбщийМодуль.ОбщегоНазначения.Модуль(5113)>: Выполнить ИмяМетода + «(» + ПараметрыСтрока + «)»;
<ОбщийМодуль.ДлительныеОперации.Модуль(1036)>: ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
<ОбщийМодуль.ДлительныеОперации.Модуль(1026)>: ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);

по причине:
-2147467238(0x8000401A): Процесс сервера не может быть запущен, так как указана неправильная идентификация. Проверьте правильность указания имени пользователя и пароля.

Источник

1с 2147467238 0x8000401a процесс сервера не может быть запущен

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Как freebsd hyper v

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

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

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

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

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

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

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

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

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

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

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

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

От: Jolly Roger
Дата: 27.10.10 08:59
Оценка:

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

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

Читайте также:  Joomla шаблон поддержка joomshopping

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Ssh аутентификацию что это

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

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

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

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

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

Понятно.

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Поделиться с друзьями
КомпСовет
Adblock
detector