Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.07.2011, 10:14   #1
WitcherD
 
Регистрация: 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.
WitcherD вне форума Ответить с цитированием
Старый 08.07.2011, 11:38   #2
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Код:
Type.GetTypeFromProgID("Library.Cla ss", server, true);
в имени типа пробел не ставится
Hollander вне форума Ответить с цитированием
Старый 08.07.2011, 11:42   #3
WitcherD
 
Регистрация: 08.07.2011
Сообщений: 8
По умолчанию

В коде пробела нет=) в редактировании сообщения тоже нет. Почему-то в посте появляется. Основной вопрос как правильно подключаться к удаленному компьютеру
WitcherD вне форума Ответить с цитированием
Старый 08.07.2011, 12:24   #4
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

По идее к нему не надо подключатся, он просто должен быть доступен. В качестве server надо указать имя компьютера. Если передать null, то искать будет у тебя локально.
Hollander вне форума Ответить с цитированием
Старый 08.07.2011, 13:53   #5
WitcherD
 
Регистрация: 08.07.2011
Сообщений: 8
По умолчанию

хм, насколько я понял progId получается из имени библиотеки, точка, название класса. С помощью OleView можно узнать все классы, с этим проблем вроде нет. Два компьютера находятся в локальной сети, на одном из них лежит эта библиотека. Со второго запускается приложение. Если в качестве сервера просто указывать айпи, или название компьютера, то результат все та же ошибка.

Может я делаю что-то не то, или где может быть ошибка?
WitcherD вне форума Ответить с цитированием
Старый 08.07.2011, 16:13   #6
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

мот firewall у кого-то не пускает.
Hollander вне форума Ответить с цитированием
Старый 09.07.2011, 22:14   #7
WitcherD
 
Регистрация: 08.07.2011
Сообщений: 8
По умолчанию

Файерволов нет.
WitcherD вне форума Ответить с цитированием
Старый 10.07.2011, 18:11   #8
CoToHeeB
Новичок
Джуниор
 
Регистрация: 10.07.2011
Сообщений: 2
По умолчанию

А тип myType правильно объявлен? В С++ тип объявляется typedef myType. Может из за этого что то?
CoToHeeB вне форума Ответить с цитированием
Старый 10.07.2011, 18:27   #9
WitcherD
 
Регистрация: 08.07.2011
Сообщений: 8
По умолчанию

нее... Type - абстрактный базовый класс, тут все верно. Если в качестве сервера указать localhost и попытаться получить доступ к объекту на локальном компьютере, то все работает. Проблема возникает при подключении к удаленному компьютеру... может у кого еще какие идеи есть?=)
WitcherD вне форума Ответить с цитированием
Старый 10.07.2011, 18:35   #10
CoToHeeB
Новичок
Джуниор
 
Регистрация: 10.07.2011
Сообщений: 2
По умолчанию

Цитата:
Сообщение от WitcherD Посмотреть сообщение
Если в качестве сервера указать localhost и попытаться получить доступ к объекту на локальном компьютере, то все работает.
Если на локалхосте работает, то как одмин вижу два варианта. Либо неправильно указывается адрес удалённого компа, либо удалённый комп режет права на доступ.
CoToHeeB вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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