|
|
|
Alexander8111 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 24.6.2016 Репутация: нет Всего: нет |
Уважаемые специалисты, -
уже создал данную тему в разделе .Net, но вижу, что темы связанные с OPC тут так сказать периодически более активны, - поэтому повторю свой вопрос в данном разделе форума. ------------------------------------------------------------------------------------------------ В коде c# я подключаюсь к некому OPC серверу сети Bacnet (ID сервера JC.BNOPC). Данный код успешно подключается ко всем другим OPC серверам, которые мне приходилось использовать до этого, а в случае с этим сервером выдаются исключения: - The COM Server does not support the interface или - OPC.ResultIdException: E_Fail Исключения зависит от того какие dll я использую с сайта OPC foundation. Они собственно одинаковые (даты выпуска только разные) - это OpcNetApi.dll и OpcNetApi.Com.dll Колдовал много с настройками DCOM (так как гугл советует) - но все без толку. Ниже приложен скрин проблемы. Всем благодарен за помощь Это сообщение отредактировал(а) Alexander8111 - 30.6.2016, 11:30 Присоединённый файл ( Кол-во скачиваний: 4 ) BNOPC_C_.png 131,52 Kb |
|||
|
||||
jsharp36 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 8.10.2011 Репутация: нет Всего: 1 |
Побуду за капитана очевидность. Вряд ли здесь кто подробнее объяснит.
Не работал никогда с этими серверами. Но Вам ясно пишет эксепшин - COM-сервер не поддерживает данный интерфейс. Т.е. у вас несовместимые дотнетовские dll с данным ком-сервером. Советы очень общие, не знаю, применимы в Вашем случае или нет - зависит от сложности кода-провайдера (на дотнете). Очень кратко. Вдруг кто не знает. COM-сервера представляют собой до-дотнетовский способ коммуникаций между разным кодом у майкрософта. Двоичный код выставляет наружу интерфейсы (подобные по сути, как интерфейсы в дотнете). Но какого-то серьезного механизма версионности там нет. Когда подключаетесь к такому серверу, подключаетесь на свой страх и риск, может случиться, что ваш код по сигнатурам вызова функций не совпадет. Что и случилось. Обычно для таких серверов пишут библиотеки на дотнете, которые уже вы используете. В этих библиотеках скрыт механизм вызовов com-сервера. Выход такой. 1. Искать адекватную вашему серверу библиотеку на дотнете. 2. Если 1 не получается, то найти исходники неправильной библиотеки на дотнете, разобраться и исправить под ваш COM-сервер, а до этого узнать, что за интерфейсы у вашего com-сервера. Извините, если пишу очевидности и ответ бесполезен. Вообще, на дотнете редко найдешь специалиста, который бы работал с com-серверами и понимает что это такое Этот ответ добавлен с нового Винграда - http://vingrad.com |
|||
|
||||
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: COM/DCOM/ActiveX/ATL/CORBA | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |