Здравствуйте!
Я разбираюсь с так называемыми слабо связанными событиями COM+ но у меня не получается получать события на удаленном компьютере в сети.
Что я делаю:
— устанавливаю класс события на comp1;
— экспортирую класс события как прокси;
— устанавливаю класс подписчика на comp1;
— экспортирую класс подписчика как серверное приложение;
— устанавливаю экспортированные классы события и подписчика на comp2;
— создаю подписку в классе подписчика на comp1 и в поле "сервер" прописываю comp2;
— запускаю программу издателя на comp1 и жму "Fire" и... ничего не происходит.
Дополнительно:
— все это работает если я создаю локальную подписку;
— подписчик представляет собой dll, которая в вызове функции класса события создает MsgBox, прямо из dll;
На
http://rsdn.ru/article/?com/comevent.xmlАвтор(ы): А. Новик
написано что "персистентным подписчиком может быть только COM+ приложение, а оно не может иметь графического интерфейса", но у меня, в принципе, и нет интерфейса, только MsgBox + см.выше.
— на индикаторе состояния сети загораются лампочки когда я жму "Fire", причем на обоих компах;
— на comp2 в журнале системных событий появляются сообщения: Ошибка 10006: "Ошибка DCOM "Ошибка доступа " с компьютера liolick при попытке активизации сервера: {182C40F0-32E4-11D0-818B-00A0C9231C29}"
Вопросы:
— что я сделал не так и почему не работает?
— может с пользователями что надо настраивать (на обоих машинах есть пользователи под которыми все это производилось, но у них разные пароли) и как вообще с правами пользователей это связано (если связано вообще)?
Пробовал запускать приложение COM+ удаленно, опять траблы. Зарегистрировал через "Службу компонентов" на comp1, проэкспортировал прокси установил на comp2 запустил клиента, экземпляр CreateObject'ом создался, а методы не вызываются, ошибку выдает. Хотя локально работает на ура. Похоже что ошибка по той же причине... подскажите что я сделал не так?