Вопрос тут возник: каким образом вызывать COM+ компоненты с другой машины. Во всех статьях и книгах этой темы явно не касаются. То есть как всё на одной машине работает — это понятно, а как клиент с другой машины этот компонент должен вызывать, что-то все про это забывают написать. Не уж то нужно через .NET Remoting тянутся?
Здравствуйте Mishka, Вы писали:
M>Вопрос тут возник: каким образом вызывать COM+ компоненты с другой машины. Во всех статьях и книгах этой темы явно не касаются. То есть как всё на одной машине работает — это понятно, а как клиент с другой машины этот компонент должен вызывать, что-то все про это забывают написать. Не уж то нужно через .NET Remoting тянутся?
Из MCC Component Services на той машине, где хозяйство стоит — которое юзать с другой,
на нужном Application — правая кнопка мыши, Export, Application Proxy. Полученный msi-файл инсталлируете на машине-клиенте. Все.
Через .NET Remoting вроде работает, но это ж уже будет 4 проекта: 1 — shared library, 2 — COM+ component, 3 — HostServer, 4 — Client. Все маленькие, но всё же... Есть другие идеи?
Здравствуйте Mishka, Вы писали:
M>Через .NET Remoting вроде работает, но это ж уже будет 4 проекта: 1 — shared library, 2 — COM+ component, 3 — HostServer, 4 — Client. Все маленькие, но всё же... Есть другие идеи?
"This article describes how to troubleshoot error 1928 "Error registering COM+ application." You may receive this error message when you run an .msi file (which is created when you export a COM+ application) on a client computer or another server computer."
Спасибо за ссылку, но по прежнему ничего не работает. Валится при попытке вызова DllRegisterServer в моей dll. А какой на хрен там DllRegisterServer, когда это .NET assembly?
Здравствуйте Mishka, Вы писали:
M>Спасибо за ссылку, но по прежнему ничего не работает. Валится при попытке вызова DllRegisterServer в моей dll. А какой на хрен там DllRegisterServer, когда это .NET assembly?
Так речь шла о .Net-компонентах? Тогда я пас — к ней только начал подходы делать.
Удачи.:)
Если решите проблему — киньте как — а то чувствую пригодится.
Здравствуйте Mishka, Вы писали:
M>Спасибо за ссылку, но по прежнему ничего не работает. Валится при попытке вызова DllRegisterServer в моей dll. А какой на хрен там DllRegisterServer, когда это .NET assembly?
Вообщн длч прокси длл на фиг не нужна. В прокси можно класть tlb-ху.
Добейся чтобы в момент регистрации в COM+ у тебя показывали на длл, что в ней лежит компонент, а тлб кладит отдельно (как не спрашивай... рой реестр сам). Если добьешся этого, то прокси не будет содержать длл-и и регистрация пройдет нормально.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте VladD2, Вы писали:
VD>Здравствуйте Mishka, Вы писали:
M>>Спасибо за ссылку, но по прежнему ничего не работает. Валится при попытке вызова DllRegisterServer в моей dll. А какой на хрен там DllRegisterServer, когда это .NET assembly?
VD>Вообщн длч прокси длл на фиг не нужна. В прокси можно класть tlb-ху. VD>Добейся чтобы в момент регистрации в COM+ у тебя показывали на длл, что в ней лежит компонент, а тлб кладит отдельно (как не спрашивай... рой реестр сам). Если добьешся этого, то прокси не будет содержать длл-и и регистрация пройдет нормально.
У нас эта фигня стала работать после того, как мы убрали из класса пуллинг. Proxy стали устанавливаться корректно.
Ну а пуллинг вернули на место.