Re: DCOM вызов из net
От: Phaust  
Дата: 23.01.09 14:14
Оценка: -1
Здравствуйте, _Cancel, Вы писали:

_C>Проблема загадочного характера.

_C>COM сервер реализованный как DLL (С++) регистрируется на cервере. Для проверки пробую OleView->CreateInstance создаю его удаленно и локально все гуд. Пытаюсь вызвать с .Net клиента получаю, что на удаленном сервере класс не зарегистрирован. Собственно код вызова:
_C>
_C>string server = "remotehost";
_C>Type type = Type.GetTypeFromCLSID(typeof(ObjClass).GUID, server);
_C>IObjClass link = (IObjClass)Activator.CreateInstance(type);
_C>link.Run(tbxTest.Text);
_C>

_C>Целый день пытался найти, что может быть не так ... Может кто наступал на такую граблю.
По моему,так как вы делаете,нельзя. Что бы подключится к COM серверу следует знать его прокрамный идентификатор(вы его должны знать). Далее в таком вот духе:string ServName = ProgIDserver;

Type TypeOfServer = Type.GetTypeFromProgID(ProgIDserver);
if (TypeOfServer == null)
Marshal.ThrowExceptionForHR( HRESULTS.OPC_E_NOTFOUND );
object ServerObj = Activator.CreateInstance(TypeOfServer);
iServer = (IServer) OPCServerObj;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.