|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
08.07.2011, 10:14 | #1 |
Регистрация: 08.07.2011
Сообщений: 8
|
DCOM .Net
Добрый день,
наверное, задача очень простая, но никак не получается разобраться. Для интеграции двух систем был разработан метод Method в интерфейсе IInterface библиотеки Library.dll. Надо вызвать этот метод с определенными параметрами и получить ответ. Все что нашел, сводится к следующему: Type myType = Type.GetTypeFromProgID("Library.Cla ss", server, true); Object interfaceValue = Activator.CreateInstance(myType); myType.InvokeMember("Method", BindingFlags.InvokeMethod, null, interfaceValue, args); Но на первой строке вылезает ошибка "Недопустимая строка с указанием класса", соответственно myType остается пустым. Не могли бы вы подсказать, что вообще следует делать и в каком направлении двигаться. Правильно ли указано progId? Или как его узнать, если есть доступ к компьютеру, где лежит длл. Что указывать в имени сервера, как определить к какому домену подключаться и как аутендифицироваться, и надо ли это вообще? Последний раз редактировалось WitcherD; 08.07.2011 в 11:39. |
08.07.2011, 11:38 | #2 |
Участник клуба
Регистрация: 03.05.2007
Сообщений: 1,189
|
Код:
|
08.07.2011, 11:42 | #3 |
Регистрация: 08.07.2011
Сообщений: 8
|
В коде пробела нет=) в редактировании сообщения тоже нет. Почему-то в посте появляется. Основной вопрос как правильно подключаться к удаленному компьютеру
|
08.07.2011, 12:24 | #4 |
Участник клуба
Регистрация: 03.05.2007
Сообщений: 1,189
|
По идее к нему не надо подключатся, он просто должен быть доступен. В качестве server надо указать имя компьютера. Если передать null, то искать будет у тебя локально.
|
08.07.2011, 13:53 | #5 |
Регистрация: 08.07.2011
Сообщений: 8
|
хм, насколько я понял progId получается из имени библиотеки, точка, название класса. С помощью OleView можно узнать все классы, с этим проблем вроде нет. Два компьютера находятся в локальной сети, на одном из них лежит эта библиотека. Со второго запускается приложение. Если в качестве сервера просто указывать айпи, или название компьютера, то результат все та же ошибка.
Может я делаю что-то не то, или где может быть ошибка? |
08.07.2011, 16:13 | #6 |
Участник клуба
Регистрация: 03.05.2007
Сообщений: 1,189
|
мот firewall у кого-то не пускает.
|
09.07.2011, 22:14 | #7 |
Регистрация: 08.07.2011
Сообщений: 8
|
Файерволов нет.
|
10.07.2011, 18:11 | #8 |
Новичок
Джуниор
Регистрация: 10.07.2011
Сообщений: 2
|
А тип myType правильно объявлен? В С++ тип объявляется typedef myType. Может из за этого что то?
|
10.07.2011, 18:27 | #9 |
Регистрация: 08.07.2011
Сообщений: 8
|
нее... Type - абстрактный базовый класс, тут все верно. Если в качестве сервера указать localhost и попытаться получить доступ к объекту на локальном компьютере, то все работает. Проблема возникает при подключении к удаленному компьютеру... может у кого еще какие идеи есть?=)
|
10.07.2011, 18:35 | #10 |
Новичок
Джуниор
Регистрация: 10.07.2011
Сообщений: 2
|
Если на локалхосте работает, то как одмин вижу два варианта. Либо неправильно указывается адрес удалённого компа, либо удалённый комп режет права на доступ.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
DCOM | drzod | Общие вопросы C/C++ | 0 | 26.01.2011 04:15 |
Удаленный SQL-сервер Ado.Net + .Net remoting + Asp .Net | gammaray | Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) | 2 | 22.11.2010 17:36 |
DCOM | SanekIrk | Общие вопросы Delphi | 1 | 10.09.2009 09:45 |