Здравствуйте, _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;