1C.Net:Предприятие - Инструкция по подключению Elisy .Net Bridge 4 на 64-разрядном сервере 1С:Предприятие 8
Существует известная проблема невозможности подключения 32-х разрядных dll в 64-разрядных приложениях. Происходит это из-за полной изоляции операционной системой 32-х и 64-х разрядных приложений. Как следствие невозможно в 64-х разрядных приложениях загрузить 32-х разрядные COM/OLE/ActiveX.
Библиотека Elisy .Net Bridge спроектирована как 32-х разрядная и поэтому стабильно работает на 32-х разрядных сервере и клиенте 1С:Предприятие. Попытка же запустить Elisy .Net Bridge на 64-разрядном сервере 1С:Предприятие из-за упомянутой проблемы приводит к появлению ошибки: «Класс не зарегистрирован».
Для решения проблемы компания Microsoft предложила методику, по которой допустимо подключать к 64-разрядным приложениям 32х разрядные COM через расширение COM+.
Настройка
Настройка прописывает библиотеку Elisy.NetBridge.dll в Службе компонентов. Настройка показана на примере Windows 2008 R2.
Перед настройкой необходимо, чтобы библиотека Elisy.NetBridge.dll была установлена на компьютере и должным образом зарегистрирована в реестре.
Откройте Службу компонентов через Администрирование, Служба компонентов и перейдите по пути Службы компонентов, Компьютеры, Мой компьютер, Приложения COM+.
Выделите пункт дерева Приложения COM+ и выберите пункт меню Действия, Создать, Приложение.
Нажмите Создать новое приложение
Задайте имя ElisyNetBridge4x64 и выберите пункт Серверное приложение. Нажмите кнопку Далее.
В окне Учетная запись необходимо задать права под которыми будет запускаться dll. Можно задать такие же права, как и на службу сервера 1С:Предприятие. Нажмите кнопку Далее.
Следующие шаги можно пропустить, нажав кнопки Далее, Далее и Готово.
В ветке Приложения COM+ раскрыть новое приложение ElisyNetBridge4x64 и выбрать Компоненты. Нажать в меню Действия, Создать, Компонент.
В мастере установке нажать Далее и выбрать Импорт уже зарегистрированных компонентов. Библиотека Elisy.NetBridge.dll уже должна быть установлена на компьютер и зарегистрирована в реестре.
В появившемся окне «Выбор компонентов для импорта» установить флаг на 32 разряда и найти в отфильтрованном списке Elisy.NetBridge4.1. Нажать Далее и Готово.
Проверка работы
Для проверки правильности необходимо на 64-разрядном сервере запустить команды инициализации Elisy .Net Bridge. Компонент должен быть активирован, так как неактивированный компонент версии 4.0.4 после первой команды приведет к зависанию (в 32-разрядных приложениях в этом месте появляется диалоговое окно об ознакомительной версии). Например, можно выполнить программу в управляемой форме внешней обработки:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
net = Новый COMОбъект("Elisy.NetBridge4");
result = net.ActivateByLicenseFile("");
Сообщить(net.GetStatic("System.IntPtr", "Size"));
Сообщить(net.GetStatic("System.Environment", "Is64BitProcess"));
Сообщить(net.GetStatic("System.Environment", "Is64BitOperatingSystem"));
КонецПроцедуры
Программа вернет IntPtr.Size : 4 и Environment.Is64BitProcess : Ложь, так как библиотека загружена в режиме 32разрядной эмуляции. Environment.Is64BitOperatingSystem вернет Истина, так как операционная система 64-разрядная.
// //