Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.02.17;
Скачать: [xml.tar.bz2];

Вниз

Как dcomcnfg вычисляет AppId?   Найти похожие ветки 

 
kingdom   (2003-02-03 12:00) [0]

При инсталяции некоторой проги я выполняю автоматическую настройку DCOM (чтобы пользователю не запускать dcomcnfg.exe).
Так вот, до недавнего времени я считал что dcomcnfg берет в кажестве AppId, GUID первого CoClass"а из библиотеки типов,
однако, появилось несколько новых серверов где это оказалось не так.

Как же dcomcnfg выбирает AppId?


 
kingdom   (2003-02-03 14:58) [1]

Согласен, что проблема не глобпльная, но может есть гуру, которые помогут :(


 
icWasya   (2003-02-03 15:02) [2]

а проверь такой вариант - в каком порядке GUID`ы встречаются в Реестре???


 
kingdom   (2003-02-03 16:06) [3]

>icWasya
Даже не знаю, что сказать, на тестовом примере децствительно так,
но есть один сервер где такие GUID"ы
{44EC98AD-5B98-4CE3-A530-06ABDF5D7152}
{7C494E12-B750-4F62-BC2D-A7A597F1C0E9}
{579F6038-90A7-432D-B202-D2AF1C18A032}
и при этом dcomcnfg выбирает последний!


 
Юрий Федоров   (2003-02-03 16:14) [4]

Если я правльно понял, то AppID должен быть записан как параметр в ветке с CLSID


 
kingdom   (2003-02-03 16:22) [5]

>Юрий Федоров
Это понятно, а вот чему равен AppId?

>to all
На самом деле в качестве AppId подойдет любой GUID, можно даже его самому сгенерировать, но хочется, чтобы он был точно такой же как у dcomcnfg. Вроде это всегда GUID ко-класса, но вот какого именно, если их несколько не очень понятно...


 
Набережных С.   (2003-02-03 17:07) [6]

>kingdom ©

Dcomcnfg сам создает AppID для совместимости со старыми серверами, не регистрирующими AppID самостоятельно. Нормально и правильно самому провести регистрацию, используя для этого уникальный GUID.


 
kingdom   (2003-02-04 11:40) [7]

>Набережных С.
Интересно он генерит, что AppId всегда совпадает с одним из GUID"ов из библиотеки типов, замечу, что я не один десяток серверов регистрировал.


 
Набережных С.   (2003-02-05 14:25) [8]

>kingdom © (04.02.03 11:40)

Он не генерит. Ты правильно написал, что он использует GUID одного из классов, но только в том случая, если сервер сам не зарегистрировал свой AppID. AppID нужен для подсистемы безопасности. До появления DCOM защиты в COM не было и ключа этого не было, а когда в NT4 появилась DCOM, то потребовалась и защита. Тогда и был введен этот ключ. В общем, RTFM.


 
kingdom   (2003-02-06 12:20) [9]

>Набережных С.
"он использует GUID одного из классов, но только в том случая, если сервер сам не зарегистрировал свой AppID"
ну да так оно и происходит, изначально серверам и нечего там писать (как правило)!

И все-таки, вопрос остается открытым,
по какому принципу dcomcnfg выбирает GUID для использования в качестве AppId?


 
Набережных С.   (2003-02-06 14:27) [10]

К хирургу.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.02.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
1-52898
Nemas
2003-02-07 17:30
2003.02.17
Форам поверх всех окон


1-52992
Вопросик
2003-02-10 11:39
2003.02.17
Проблемы с OLE


1-52997
sans
2003-02-10 14:11
2003.02.17
Печать с использованием таблицы(+)


1-53055
AlexsanderSK
2003-02-06 15:44
2003.02.17
Как передать объект в DLL?


14-53237
Сатир
2003-01-31 13:47
2003.02.17
Фанатам Гарри Поттера и Путина В.В. посвящается%)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский