![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как dcomcnfg вычисляет AppId? [D5, Win2k]
kingdom © (2003-02-03 12:00:00)При инсталяции некоторой проги я выполняю автоматическую настройку DCOM (чтобы пользователю не запускать dcomcnfg.exe).
Так вот, до недавнего времени я считал что dcomcnfg берет в кажестве AppId, GUID первого CoClass"а из библиотеки типов,
однако, появилось несколько новых серверов где это оказалось не так.
Как же dcomcnfg выбирает AppId?
Набережных С. (2003-02-06 14:27:00) [1]К хирургу.
kingdom (2003-02-06 12:20:00) [2]>Набережных С.
"он использует GUID одного из классов, но только в том случая, если сервер сам не зарегистрировал свой AppID"
ну да так оно и происходит, изначально серверам и нечего там писать (как правило)!
И все-таки, вопрос остается открытым,
по какому принципу dcomcnfg выбирает GUID для использования в качестве AppId?
Набережных С. (2003-02-05 14:25:00) [3]>kingdom © (04.02.03 11:40)
Он не генерит. Ты правильно написал, что он использует GUID одного из классов, но только в том случая, если сервер сам не зарегистрировал свой AppID. AppID нужен для подсистемы безопасности. До появления DCOM защиты в COM не было и ключа этого не было, а когда в NT4 появилась DCOM, то потребовалась и защита. Тогда и был введен этот ключ. В общем, RTFM.
kingdom (2003-02-04 11:40:00) [4]>Набережных С.
Интересно он генерит, что AppId всегда совпадает с одним из GUID"ов из библиотеки типов, замечу, что я не один десяток серверов регистрировал.
Набережных С. (2003-02-03 17:07:00) [5]>kingdom ©
Dcomcnfg сам создает AppID для совместимости со старыми серверами, не регистрирующими AppID самостоятельно. Нормально и правильно самому провести регистрацию, используя для этого уникальный GUID.
kingdom (2003-02-03 16:22:00) [6]>Юрий Федоров
Это понятно, а вот чему равен AppId?
>to all
На самом деле в качестве AppId подойдет любой GUID, можно даже его самому сгенерировать, но хочется, чтобы он был точно такой же как у dcomcnfg. Вроде это всегда GUID ко-класса, но вот какого именно, если их несколько не очень понятно...
Юрий Федоров (2003-02-03 16:14:00) [7]Если я правльно понял, то AppID должен быть записан как параметр в ветке с CLSID
kingdom (2003-02-03 16:06:00) [8]>icWasya
Даже не знаю, что сказать, на тестовом примере децствительно так,
но есть один сервер где такие GUID"ы
{44EC98AD-5B98-4CE3-A530-06ABDF5D7152}
{7C494E12-B750-4F62-BC2D-A7A597F1C0E9}
{579F6038-90A7-432D-B202-D2AF1C18A032}
и при этом dcomcnfg выбирает последний!
icWasya (2003-02-03 15:02:00) [9]а проверь такой вариант - в каком порядке GUID`ы встречаются в Реестре???
kingdom (2003-02-03 14:58:00) [10]Согласен, что проблема не глобпльная, но может есть гуру, которые помогут :(