BizTalk 2020 — HTTP-запрос неавторизован со схемой аутентификации клиента «Переговоры». Получен заголовок аутентификации/сервер был «Переговоры».
У нас есть оркестровка, использующая SendPort для вызова внутренней веб-службы, которая не находится на том же компьютере, что и BizTalk. То же самое приложение отлично работает в BizTalk 2016, но не работает в BizTalk 2020.
Описание ошибки: System.Net.WebException: HTTP-запрос неавторизован со схемой аутентификации клиента «Согласование». Заголовок аутентификации, полученный от сервера, был «Переговоры».
Я прочитал соответствующий вопрос на StackOverflow:«HTTP-запрос неавторизован со схемой аутентификации клиента «Переговоры». Заголовок аутентификации, полученный от сервера, был «Переговоры»»
У нас есть поведение WCF под названием bizTalkAddHttpheaders. Весь код был перекомпилирован с помощью .NET 4.7.2 для BizTalk 2020. Мы пробовали использовать поведение WCF и без него, которое обрабатывает TLS 1.2.
1 ответ
Оказывается, имя пользователя экземпляра хоста просто не было настроено для этого приложения.
На самом деле я запутался, какой именно SendPort, поскольку это конкретное приложение вызывало два совершенно разных внутренних веб-сервиса. Как только я увидел, что это другой порт отправки, я поместил его на хост приложений со старым идентификатором пользователя, и это сработало.
При установке BizTalk 2020 в нашей разработке мы изменили идентификатор пользователя наших экземпляров хоста, чтобы он соответствовал соглашениям об именах, используемым в QA и PROD. Поэтому нам пришлось создать множество заявок в службу поддержки, чтобы обеспечить надлежащую безопасность.
Я не знаю, почему ошибка не могла просто сказать: «Имя пользователя =xxxxxx не авторизована», ее было бы гораздо проще выявить.