#.net-core #soap-client #asp.net-core-3.1 #asp.net-core-2.2 #dynamics-nav
#.net-core #soap-клиент #asp.net-core-3.1 #asp.net-core-2.2 #dynamics-nav
Вопрос:
У меня есть приложение dot net core 2.2, которое использует конечную точку NAV SOAP, которая отлично работает в среде IIS. Я обновился до dot net core 3.1, где конечная точка SOAP не работает, выдавая ошибку «HTTP-запрос неавторизован с помощью схемы аутентификации клиента «Basic». Заголовок аутентификации, полученный с сервера, был «Согласован «. «
Во время отладки я узнаю, что канал, внутренний канал и состояние не инициализируются должным образом в dot net 3.1, как правило, состояние должно быть открытым, но оно показывает ошибку.
Исключение — system.servicemodel.communicationobjectfaultedexception.
Пожалуйста, найдите ниже снимок для получения дополнительной информации. Инициализация прокси-класса sanpshot
Комментарии:
1. Какую аутентификацию вы используете?
2. Это базовая………. результат. Безопасность. Транспорт. clientCredentialType = System. ServiceModel. HttpClientCredentialType.Basic;
3. Я почти уверен, что Nav не поддерживает basic. Это только NTLM или Kerberos. В вашем случае это согласование, что означает Kerberos. Это не должно зависеть от используемой вами версии dotnet.
4. Я пробовал с NTLM….. HTTP-запрос неавторизован с помощью схемы аутентификации клиента «Ntlm». Заголовок аутентификации, полученный от сервера, был «Согласован».
5. Поскольку согласование означает Kerberos. Если вы хотите использовать NTLM, вам необходимо перенастроить экземпляр сервера Nav / BC для использования NTLM. См . learn.microsoft.com/en-us/dynamics365/business-central /… вам нужно
Use NTLM Authentication
установить флаг наtrue
.
Ответ №1:
Проблема решена.
Эта проблема из-за неправильного обновления до Dot Net core 3.1. и System.ServiceModel должна иметь Version=»4.4.4″