AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.11.2018, 12:31   #1  
jonny.do is offline
jonny.do
Участник
 
6 / 11 (1) +
Регистрация: 14.02.2018
Приведение типов в Axapta
Собственно проблема:
Axapta 2009, .NET 3.5 в ней отсутствует SecurityProtocolType::TLS12,
на c# это можно обойти через приведение типов:

Код:
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
Возможно ли сделать тоже самое в Аксапте? Без этого сторонний сервер не хочет принимать запрос..

X++:
System.Net.ServicePointManager::set_SecurityProtocol(System.Net.SecurityProtocolType::TLS12);
Старый 01.11.2018, 13:18   #2  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
1,781 / 959 (35) +++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Можно научить DAX2009 понимать объекты .NET 4*.
В клиента в каталог bin положите файл ax32.exe.config со следующим содержимым:
X++:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
       <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
  </startup>
</configuration>
В bin инстанса сервера с таким же содержимым, но с именем Ax32Serv.exe.config
Естественно и клиента и сервер нужно перезапустить.
Именно для работы с TLS12 сделали так, работает как минимум полгода без проблем. Правда что-то у нас пошло не так при прямом указании
X++:
System.Net.SecurityProtocolType::TLS12
поэтому инициируем через распарсивание:
X++:
protocolType = CLRInterop::parseClrEnum(#SystemNetSecurityProtocolType, #Tls12);
где:
X++:
#define.SystemNetSecurityProtocolType('System.Net.SecurityProtocolType')
#define.Tls12('Tls12')
За это сообщение автора поблагодарили: Dreadlock (4), Veter (1), Logger (3).
Старый 08.04.2019, 14:42   #3  
Damn is offline
Damn
Участник
 
351 / 98 (4) ++++
Регистрация: 28.05.2003
Адрес: Москва
Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
Именно для работы с TLS12 сделали так, работает как минимум полгода без проблем.
Прошло ещё 5 месяцев с момента вашего поста.
Продолжает ли работать ваш способ с файлами ax32*.exe.config ?
Вы всем пользователям при установке клиента аксапты дополнительно копируете эти конфиг-файлы ?
Глобальная компиляция не выдаёт ошибки ?
Используете ли из .NET Framework 4.5 что-то ещё помимо Tls12 ?
__________________
Дмитрий
Старый 08.04.2019, 21:02   #4  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
1,781 / 959 (35) +++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от Damn Посмотреть сообщение
Прошло ещё 5 месяцев с момента вашего поста.
Ничего себе, время летит.
Цитата:
Сообщение от Damn Посмотреть сообщение
Продолжает ли работать ваш способ с файлами ax32*.exe.config
Неделю назад, когда я расстался с работодателем, в котором это делали, все работало абсолютно без проблем.
Цитата:
Сообщение от Damn Посмотреть сообщение
Вы всем пользователям при установке клиента аксапты дополнительно копируете эти конфиг-файлы ?
Нет, код работает на сервере, поэтому настроены только АОСы. Для клиентов конфиги сделаны только там, где работают разработчики (как на серверах RDP, так и Citrix) и там, где выполняется глобальная компиляция.
Цитата:
Сообщение от Damn Посмотреть сообщение
Глобальная компиляция не выдаёт ошибки ?
Нет, не выдает, так как конфиги сделаны на тех клиентах, на которых есть шанс, что будет запущена компиляция.
Цитата:
Сообщение от Damn Посмотреть сообщение
Используете ли из .NET Framework 4.5 что-то ещё помимо Tls12 ?
Каким-то специальным образом нет, но когда добавляешь какой-то референс, Аксапта берет библиотеку именно 4.5. Заметили это по тем разраотчикам, которые работают удаленно через Цитрикс - если у постоянных разработчиков все было настроено, то в Цитрикс не сразу сделали эти настройки и у удаленных разработчиков с новыми референсами выдавались ошибки в случае, если используемые объекты NET в 4.5 изменились по сравнению с 3.5. То есть, использование каких-то специфичных для 4.5 особенностей прямым образом не задавались, но эффект получили.

Последний раз редактировалось Raven Melancholic; 08.04.2019 в 21:04.
За это сообщение автора поблагодарили: mikki_messer (1).
Старый 10.04.2019, 16:11   #5  
Damn is offline
Damn
Участник
 
351 / 98 (4) ++++
Регистрация: 28.05.2003
Адрес: Москва
Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
но когда добавляешь какой-то референс, Аксапта берет библиотеку именно 4.5.
Имеются в виду референсы на веб-сервисы или на dll ?
Что-то у нас референсы на веб-сервисы после восстановления перестали работать.
Не получается инициализировать soap client.
Убираем конфиг-файл из АОСа, восстанавливаем референсы и они снова начинают работать корректно.
__________________
Дмитрий
Старый 11.04.2019, 09:33   #6  
Damn is offline
Damn
Участник
 
351 / 98 (4) ++++
Регистрация: 28.05.2003
Адрес: Москва
Цитата:
Сообщение от Damn Посмотреть сообщение
Не получается инициализировать soap client.
Если быть точным, то получаем вот такую ошибку :
"Не удалось найти файл App.config в местоположении сборки на сервере. Наиболее вероятной причиной этого является код, выполняющийся на уровне клиента. Запустите код на уровне сервера."
Вдруг кто-то сталкивался. Код выполняется на сервере.
__________________
Дмитрий
Старый 11.04.2019, 10:01   #7  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
1,781 / 959 (35) +++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от Damn Посмотреть сообщение
Имеются в виду референсы на веб-сервисы или на dll ?
Что-то у нас референсы на веб-сервисы после восстановления перестали работать.
Тут не помогу, использовали только ссылки на обычные DLL. Даже для WEB сервисов не использовали возможность DAX2009 задавать ссылки на сервис, чтобы Акса сама там сформировала код C# и скомпилировала его.
Для WEB сервисов брали либо готовые NET сборки (например, для MS Exchange библиотеку EWS от Microsoft - кстати, вот еще пример, когда понадобилась версия выше, чем поддерживает DAX2009) либо писали сами такие оболочки, либо в самой Аксапте выполняли все, что нужно для вызова сервиса.
Теги
c#, securityprotocoltype, x++, фсс, элн

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Приведение типов для таблиц ax2012 Logger DAX: Программирование 13 28.09.2018 12:39
axaptacorner: Dynamics Axapta History Blog bot DAX Blogs 0 15.06.2012 17:11
приведение типов при ClearRange murad DAX: Программирование 2 06.05.2006 11:40
приведение типов в select simply2double DAX: Программирование 3 30.09.2004 11:24
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 13:08.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.