2009-07-17 3 views
3

Я получаю эту ошибкуDCOM сервер не удалось зарегистрировать

Источник: DCOM
event_id: 10010

«Сервер {6FC4FDAE-96C8-11D3-9F9C-005004053207} не регистрировал с DCOM в течение требуемый тайм-аут. "

Это для конкретного exe, который при работе в локальной системе работает нормально, но при запуске под не встроенным администратором терпит неудачу. Мне нужно, чтобы exe запускался под не встроенным администратором.

В настоящее время я получаю эту проблему на машине Win 2k3 с Citrix.

Однако я также столкнулся с этой проблемой на машине XP раньше.

Любые советы по решению проблемы?

ответ

1

В моем случае XP на моей машине была модифицировали ИТ ребята моей компании. Таким образом, у них была какая-то групповая политика, она запретила доступ к определенным настройкам DCOM даже для группы администраторов.

Обходной путь состоял в том, чтобы вручную зарегистрировать серверы DCOM в командной строке, открытой с учетными данными встроенной учетной записи администратора.

1

Права доступа при использовании DCOM могут сделать вас несчастными ... Они попадают между системным администратором и программистом, и пока вы не узнаете достаточно о другом, их можно будет довольно трудно преодолеть.

Что касается вашей конкретной проблемы, причиной этого сообщения об ошибке является слишком длинный запуск сервера, задерживающий вызов CoRegisterClassObject до истечения таймаута. Я бы поискал причину проблемы при запуске вашего сервера, прежде чем я посмотрю на COM. Проверьте любые сделанные вами инициализации (глобальные конструкторы переменных и т. Д.) И убедитесь, что исключение не выбрано. Смена пользователя может привести к тому, что некоторые каталоги или кусты реестра станут недоступными, возможно, нарушая инициализацию.

Что я буду делать, это сначала следить за деятельностью сервера, используя ProcMon. Это упростит поиск любых проблем, связанных с доступом, а также покажет вам соответствующую трассировку стека. Если требуется отладка, вы можете подключить отладчик сразу после запуска exe после these instructions. Наконец, если проблема возникает на машине без VS, вы можете использовать WinDBG вместо этого для отладки процесса.

+0

Попробуй это и вернись. –

7

Как я не совсем понимаю контекст ... Вот несколько советов, которые помогут вам решить проблемы ... Это помогает иметь права администратора как на исходных, так и на целевых компьютерах .... (по крайней мере, настроить и проверьте)

DCOM может быть сбивающим с толку. При работе с DCOM через границы машины проблема, скорее всего, будет связана с безопасностью и/или отсутствием учетных данных, брандмауэров и настроек DCOM для локальной машины и приложения. Что касается принципа 80/20 ... вот несколько простых правил, чтобы доставить вас на стадион.

Во-первых, сделайте охрану видимой: Fire Up SecPol.MSC на вашей исходной машине, найдите локальную политику/политику аудита и включите аудит по каждому типу события. Вы бы хорошо сделали это на целевой машине.

Зарегистрировать журнал событий DCOM. Следуйте этим указаниям http://support.microsoft.com/kb/892500

Во-вторых, измените настройки рабочей группы по умолчанию, которые, как известно, топают по всему DCOM .. Убедитесь, что на обоих исходных и целевых компьютерах отключен простой общий доступ к файлам (также известная только гостевая аутентификация). Если оба находятся в домене, то это, вероятно, отключено. В противном случае ... secpol.MSc \ Параметры безопасности \ Параметры безопасности \ доступа к сети: Обмен как модель безопасности для локальных учетных записей (установлен в классике)

В-третьих, получить представление о безопасности требуется ...

Если обе машины находятся в разных доменах или один (или оба находятся в рабочей группе) понимают требуемую общую безопасность; то есть учетные данные должны быть общими или синхронизироваться на каждой машине. То есть, для входа в систему, выполняющего процесс на исходной машине, идентичные учетные данные должны существовать на целевом компьютере. Для обоих в том же домене не беспокойтесь, поскольку учетные данные на основе домена для одной машины будут такими же, как и другие.

В-четвертых, если вы можете, воспользуйтесь брандмауэром.

Временно отключите его .. но только в том случае, если оно безопасно. В противном случае предположим, что для портов netbios и ваших приложений используется exename (135/139udp). Используемые порты являются предпосылкой; т. е. это может быть неверным.

В-пятых, прежде чем он станет слишком сложным ... Просто попытайтесь вызвать ошибку (запустите программу) и просмотрите систему и журналы безопасности на обеих машинах. Если это проблема безопасности, он будет торчать как больной палец, и вы можете соответствующим образом отрегулировать его.

Если нет, то dcomcnfg станет вашим другом. Параметры DCOM для конкретного компонента разрешаются в следующих случаях: ИСПОЛНЕНИЕ КОДА, НАСТРОЙКИ ПРОГРАММЫ и НАСТРОЙКИ МАШИНЫ ПО УМОЛЧАНИЮ. Dcomcnfg поможет вам решить последние два. Вы можете найти более конкретные (но упрощенные) направления на http://www.opcfoundation.org/DownloadFile.aspx?RI=326

Followup если вы застряли ....

+0

Спасибо за предложение, попробуем. –

Смежные вопросы