Я хочу использовать внешний веб-сервис, используя MS Dynamics AX.
Обычный способ сделать это - создать библиотеку классов C # со ссылкой на службу. Затем, в прежние времена, вы могли просто нажать кнопку «Развернуть на AX», и ваш dll был установлен и мог быть использован.
Сейчас:
Теперь мне нужно было реализовать протокол безопасности (TLS1.2) в этой библиотеке классов.
Теперь для TLS1.2 мне нужно было использовать .net Framework 4.7, и VS2010 не поддерживает это.
Итак, я закончил тем, что создал новую библиотеку классов в VS 2017 и развернул ее вручную в папках bin нашего AX.
Таким образом, мое решение состояло в том, чтобы добавить дополнительный класс в эту библиотеку классов, который устанавливает протокол безопасности перед вызовом методов службы из ссылки на службу. Все остальное похоже на старую библиотеку классов.
Проблема заключается в том, что я могу использовать свой пользовательский клиент в AX, но у меня появляется ошибка System.InvalidOperationException: Не удалось найти элемент конечной точки по умолчанию, который ссылается на контракт «Messaging.Messaging».
Вот что я создал:
Мой проект .net использует ссылку на сервис и один простой класс, который я вызываю из AX:
Тогда вот как я хочу использовать эту услугу в классе.
Я использовал ConfigurationChannelFactory, но все еще получал ошибку enpoint в AX. При использовании консольного приложения в .net оно работает отлично.