Практически все конфликты приводят к тому, что во время установки OS на экране монитора появляется синий экран с указанием кода ошибки. Ничего не могу сказать, но именно её код использовал мой его к COM интерфейсам вываливается Access Denied ( 0x80070001). Например, как настроить DCOM, какие возможные причины ошибки RPC server. Ошибка 0x80300024 при установке Windows 7 - Установка Windows не может быть выполнена в это местоположение. Убедитесь, что имеются все файлы, необходимые для установки и перезапустите установку. Код ошибки 0х80070001' Что делать?
Шпаргалка по OPC DA 2 в . NET / Хабрахабр. На днях пришлось крепко повозиться с настройкой вызова удалённого сервера по протоколу OPC DA 2. Что такое OPC DA и в частности OPC DA 2. В общем случае OPC — это набор открытых протоколов, регламентирующих взаимодействие между собой различных объектов автоматизации, таких как SCADA- системы, к примеру.
OPC DA (Data Access) — это один из таких протоколов, он обеспечивает обмен данными с устройствами или программными компонентами. В моем случае по этому протоколу нужно было периодически забирать данные со SCADA- системы. И самое важное — OPC DA работает на базе технологии COM, так что взаимодействие с OPC сервером по сути сводится к взаимодействию с COM сервером. Какие есть библиотеки.
Ошибка при установке Windows 7: Windows не удается как исправить ошибку Stop 0x000000A5 при установке Windows 7 на ноутбуке.
Называются OPC . NET API 2. Redistributable — их нельзя скачать просто так, нужно быть «мембером» (= зарегиться и занести деньжат). Там же и OPC Core Components, от которых эта библиотека зависит. На рутрекере можно найти и то, и другое. А вообще не совсем понятно, почему для получения библиотеки от Opc Foundation — компании, которая продвигает «открытый стандарт» — нужно что- то платить. Документации к ней нигде нет, и API построен не самым лучшим образом (например есть несколько интерфейсов и классов с одним и тем же именем, но в разных пространствах имен, жутко неудобно, постоянно нужно лезть в Object Browser и смотреть, какой именно класс нужен), однако функциональности полно — можно что угодно сделать, что только можно сделать с OPC серверами. Кстати, я для удобства прогнал сборки рефлектором и работал уже с исходниками — все проблемы декомпиляции по счастливой случайности возникли в других протоколах (OPC AE, OPC HDA) и я их просто выкинул за ненадобностью.
Могу прислать солюшен, если кому интересно, пишите. Скачал я Evaluation версию — инсталлятор, который потребовал пароль (!), ну а пароль пришел по почте. Самое полезное в этом наборе компонент — тестовые клиенты для OPC — winforms приложения, позволяющие попробовать приконнектиться и посмотреть, что есть внутри OPC сервера. Сами библиотеки я не смотрел, они обфусцированы и в них заложено ограничение по времени — полчаса, потом программу надо перезапускать. Но с тестовым клиентом возился долго, так как система у меня была 6. Target Platform = Any.
CPU, и в 3. 2битной винде запускалась как 3. Что приводило к ошибке в коде COM- интеропа вида «CLSID is not registered». А я думал, что у меня что- то неправильно настроено и 2 дня убил на копания в secpol. По счастливой случайности догадался запустить клиент с другой тачки и все стало ясно.
С помощью ILDASM и Hex- редактора определил смещение флага Target. Platform (от начала CLR Header), добавил туда второй бит 3. BITREQUIRED и все заработало. Вывод — если у вас не работает COM Interop, первым делом проверьте соответствие платформы. К слову, клиент тоже был обфусцирован (с помощью Smart. Assembly), и его CLR Header был расположен в конце. Ничего не могу сказать, но именно её код использовал мой предшественник, который реализовал локальное взаимодействие с OPC сервером.
Судя по тому, что написано в статье, она как раз для локального взаимодействия и предназначена. Плюсы — доступные исходники, наличие тестового клиента, отсутствие зависимостей. Можно ли написать код без использования библиотек.
В принципе, ничего сложного в этом нет, если вы имели опыт взаимодействия с COM/DCOM приложениями. А тем, кто как и я, не особо разбирается в этих технологиях, могу порекомендовать писать код, поглядывая на декомпилированные исходники библиотеки от OPC Foundation.
По сути, для взаимодействия с OPC сервером достаточно всего лишь сделать интеропы на необходимые интерфейсы, получить их и дергать методы. Проблемы. — Тестовый клиент не подключается с ошибкой RPC сервер недоступен — проверьте доступность портов, порта номер 1. DCOM).— Access Denied — придется повозиться с настройкой как сервера, так и клиента. Либо проверьте Target Platform сборки, осуществляющей интероп. Может быть, там Any. CPU а должно быть x. Co. Create. Instance.
Ex возвращает валидный COM объект, но при касте его к COM интерфейсам вываливается Access Denied (0x. С этой проблемой я возился полдня. Эта штука происходит, когда для доступа к серверу необходимо указать юзера и пароль. Вы вызываете Co. Create.
Instance. Ex, заполнив перед этим SERVER. Однако следующие вызовы Query. Interface не сохраняют параметров доступа, которые вы указали при получении объекта, и это приводит к Access Denied. Решение — вызвать магическую функцию Co. Initialize. Security, которая установит дефолтные параметры безопасности для COM- вызовов. Эта ошибка возникает обычно из- за хост- процесса Visual Studio, который неявно вызывает Co. Initialize. Security при старте.
Для решения проблемы достаточно отключить использование хост- процесса в настройках проекта. По этой проблеме есть несколько ссылок с полезной информацией: Как чел с stackoverflow сам себе помог разобраться. Готовые интеропы функции с ремарками. Предложения майрософту от разработчиков по этой проблеме.
Ссылки по теме. OPC Training Institute — сайт с множеством отлично оформленных статей, которые помогают в случае проблем. Например, как настроить DCOM, какие возможные причины ошибки RPC server is not available итд. Требует регистрации, регистрация бесплатна. Туториалы по настройке DCOM — еще 1 хорошо оформленный туториал для настройки.