25.07.2018, 13:46 | #1 |
Участник
|
AX 2009. Привязка сторонней DLL на сервере
Как правильно установить и подключить внешнюю dll, чтобы использовать на стороне сервера? (дёргать её из табличных методов Update, Insert, ...)?
Ax 2009 (5.0.1500). 3-х уровневая архитектура Есть сторонняя библиотека (*.dll) написанная на C# (.net 2.0). Из неё вызываются функции для передачи данных из Axapta в стороннее приложение. Зарегистрировал в GAC (также пробовал просто кидать в "C:\Program Files (x86)\Microsoft Dynamics AX\50\Client\Bin\") и подключил в References. Также зарегистрировал на сервере в GAC. На клиенте всё ОК, а если вызывать на сервере (RunOn: Server), то пишет или "Объект "CLRObject" не может быть создан", или "Отсутствуют ссылки на сборку" |
|
25.07.2018, 14:18 | #2 |
Участник
|
попробуйте скопировать в Program Files\Microsoft Dynamics AX\50\Server\Bin
|
|
25.07.2018, 14:21 | #3 |
Участник
|
Посмотрите в свойствах этой DLL каким-нить ILSpy'ем, под какую архитектуру она собрана. У вас, скорее всего, используется 64-битная версия AOS'а, так что сборка должна быть под MSIL либо AMD64 (а чтоб работать и на клиенте, и на AOS'е - только под MSIL). Если она собрана под x86, то 64-битный AOS, вероятнее всего, не сможет ее загрузить.
|
|
26.07.2018, 04:25 | #4 |
Участник
|
Можно еще это почитать https://daxmusings.codecrib.com/2013...resources.html
|
|
26.07.2018, 15:27 | #5 |
Участник
|
Всё равно не видит библиотеку.
Надо ли запускать на сервере (компе) саму аксапту и добавлять References? Если да, то под кем? |
|
26.07.2018, 16:27 | #6 |
Участник
|
В нашем случае для AX4 этого было достаточно, чтобы запускать код DLL на сервере. Вы точно не пропустили этот шаг?
__________________
// no comments |
|
26.07.2018, 16:43 | #7 |
Участник
|
рестарт аоса делали? после копирования
|
|
|
За это сообщение автора поблагодарили: Sergey Petrov (1). |
27.07.2018, 17:34 | #8 |
Участник
|
Да, и добавлял в папку "Program Files\Microsoft Dynamics AX\50\Server\Bin" и регистрировал в GAC на аос`е.
Может я запускаю как-то не так. X++: str test = ""; test = MyNamespace.MyClass::staticMethod(); //или так MyNamespace.MyClass class = new MyNamespace.MyClass(); Запуск с сервера |
|
|
|