Вопрос про ДКОМ
От: Аноним  
Дата: 12.10.01 09:11
Оценка:
ДОбрый день, пробую разобраться с ДКОМ и есть некоторые вопросы.
Значит собрал EXE — сервер, зарегистрил его на сервере (NT 4.0) зарегестрил его прокси, сконфигурил его в dcomcnfg — чтобы запускался на этой машине.
Потом зарегестрил его на клиенте (Win 98) как ремоут сервер, зарегестрил его прокси, поставил дком98. Пытаюсь получить доступ к этому объекту как
CoCreateInstance(CLSID_Server,NULL, CLSCTX_REMOTE_SERVER,IID_IServer, (void**)&pITest);
в ответ получаю REGDB_E_CLASSNOTREG, хотя в ререстре сервера и клиента он есть.
Подскажите пжлста чего тута не так?
Re: Вопрос про ДКОМ
От: Аноним  
Дата: 12.10.01 12:42
Оценка:
Я тут поковырялся в настройках защиты dcomcnfg — всем все разрешил и теперь CoCreateInstance возвращает какой-то мусор.
Re: Вопрос про ДКОМ
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.10.01 22:41
Оценка:
Здравствуйте Аноним, Вы писали:

А>ДОбрый день, пробую разобраться с ДКОМ и есть некоторые вопросы.

А>Значит собрал EXE — сервер, зарегистрил его на сервере (NT 4.0) зарегестрил его прокси, сконфигурил его в dcomcnfg — чтобы запускался на этой машине.
А>Потом зарегестрил его на клиенте (Win 98) как ремоут сервер, зарегестрил его прокси, поставил дком98. Пытаюсь получить доступ к этому объекту как
А>CoCreateInstance(CLSID_Server,NULL, CLSCTX_REMOTE_SERVER,IID_IServer, (void**)&pITest);
А>в ответ получаю REGDB_E_CLASSNOTREG, хотя в ререстре сервера и клиента он есть.
А>Подскажите пжлста чего тута не так?

Если хочешь сэкономить нервы и время при обучении возьми COM+ и W2k... не пожалеешь.

Похоже в твоем случае на 98-х ты не указал откуда нужно грузить сервер (компьютер), ну или это у тебя входит в понятие "зарегестрил ... как ремоут сервер". Еще возможно, что одна из машин (или обе) не в домене. Так же возможно, что ошибка в сервере. Короче, много чего возможно... кидай код... поглядим.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Вопрос про ДКОМ
От: Аноним  
Дата: 15.10.01 08:33
Оценка:
Здравствуйте VladD2, Вы писали:


VD>Если хочешь сэкономить нервы и время при обучении возьми COM+ и W2k... не пожалеешь.


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


При регистрации сервера на клиенте в разделе реестра AppID\{CSLID}\RemoteServerName = "ServerName".
А по поводу домена то в моей сети "доменов" нет есть "рабочая группа"
А какой собсно говоря код кидать?
Re[3]: Вопрос про ДКОМ
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.10.01 14:41
Оценка:
Здравствуйте Аноним, Вы писали:

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



VD>>Если хочешь сэкономить нервы и время при обучении возьми COM+ и W2k... не пожалеешь.


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


А>При регистрации сервера на клиенте в разделе реестра AppID\{CSLID}\RemoteServerName = "ServerName".

А>А по поводу домена то в моей сети "доменов" нет есть "рабочая группа"

И клиент коворишь на 98-х. Дык не будет у тебя ничего работать пока всю секюрите не отключишь. Или заводи домен или выру... ну об этом я уже говорил.

А>А какой собсно говоря код кидать?


Дык какой есть. Клиента и сервер (проекты имеется ввиду). Это все актуально если кода не много. Если это большая система с завязками, то предложение снимается.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Вопрос про ДКОМ
От: Аноним  
Дата: 16.10.01 07:45
Оценка:
Здравствуйте VladD2, Вы писали:


VD>И клиент коворишь на 98-х. Дык не будет у тебя ничего работать пока всю секюрите не отключишь. Или заводи домен или выру... ну об этом я уже говорил.


Дык про секюрите я уже писал выше. Пока у меня все было по умолчанию в dcomcnfg CoCreateInstance вернул REGDB_E_CLASSNOTREG, а кады я там порулил маненько (поставил везде ЕвриУане на вкладке защита по умолчанию) то CoCreateInstance вернул какой-то не зарегестированный код ошибки.

VD>Дык какой есть. Клиента и сервер (проекты имеется ввиду). Это все актуально если кода не много. Если это большая система с завязками, то предложение снимается.


Ну код в данном случае не существеннен т. к. сервер сформирован АТЛ — Визард, добавлен СОМ — объект с одним нехитрым методом. А клиент — косоль который вызывает CoCreateInstance и в случае удачи единственный метод сервера.

А нет ли каких нибудь диагностических функций из библиотеки СОМа которые бы возвращали какие нибудь осмысленные ошибки, что бы можно было сказать где косяк искать?
Re: Вопрос про ДКОМ
От: mojo  
Дата: 19.11.01 09:37
Оценка:
Здравствуйте Аноним, Вы писали:

А>ДОбрый день, пробую разобраться с ДКОМ и есть некоторые вопросы.

А>Значит собрал EXE — сервер, зарегистрил его на сервере (NT 4.0) зарегестрил его прокси, сконфигурил его в dcomcnfg — чтобы запускался на этой машине.
А>Потом зарегестрил его на клиенте (Win 98) как ремоут сервер, зарегестрил его прокси, поставил дком98.

как регистрировал?
на сервере надо
server.exe /Service (server.exe — имя программы)
а потом зайти в сервисы в control panel и стартовать сервис

на клиенте надо
server.exe /RegServer (server.exe — имя программы)
потом запускаешь dcomcnfg и указываешь для этого сервиса в закладке location
Run application on the following computer имя компьютера с которого ему запускаться.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.