Я публикую .Net класс как COM:
Guid g = new Guid("EA1B9EBA-E1EB-472A-B5CD-200F7C726079");
(new RegistrationServices()).RegisterTypeForComClients(typeof(PrintServer.Object), ref g);
Всё замечательно работает, в т.ч. и DCOM, однако MSSQL со своей процедурой sp_OACreate — упорно не хочет его "видеть". Прописал на всякий случай в реестр CLSID — не помогло. Куда копать, спрашивается?
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Здравствуйте, Delirium, Вы писали:
D>Я публикую .Net класс как COM:
D> Guid g = new Guid("EA1B9EBA-E1EB-472A-B5CD-200F7C726079");
D> (new RegistrationServices()).RegisterTypeForComClients(typeof(PrintServer.Object), ref g);
D>
D>Всё замечательно работает, в т.ч. и DCOM, однако MSSQL со своей процедурой sp_OACreate — упорно не хочет его "видеть". Прописал на всякий случай в реестр CLSID — не помогло. Куда копать, спрашивается?
D>
данное сообщение получено с www.gotdotnet.ru
D>ссылка на оригинальное сообщение
Выдержка с BOL: The specified OLE object must be valid and must support the
IDispatch.
Разумеется OLE object валидный и IDispatch реализует — как бы он в противном случае вызывался удалённо? А он именно вызыватся по DCOM-у из Delphi и отлично работает.
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Здравствуйте, Delirium, Вы писали:
D>Разумеется OLE object валидный и IDispatch реализует — как бы он в противном случае вызывался удалённо? А он именно вызыватся по DCOM-у из Delphi и отлично работает.
D>
данное сообщение получено с www.gotdotnet.ru
D>ссылка на оригинальное сообщение
А может проблема в регистрации? Выдержка:
Remarks
This method, which is equivalent to calling CoRegisterClassObject in COM, is not intended to be used directly from your code. It registers a type but there is no equivalent unregistration method in the RegistrationServices class. Using the RegisterTypeForComClients method can cause unpredictable results, particularly if the application is multithreaded. Instead, to register the assembly containing the type, use the
RegistrationServices.RegisterAssembly method.
RegistrationServices.RegisterAssembly — никакого эффекта, на sp_OACreate не произвело
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение