Как предварительно обработать файл привязок с помощью возврата каретки для BizTalk
У меня есть XML-файл привязок для BizTalk, порты WCF-WebHttp
который в основном для вызова услуг отдыха.
Такие порты имеют HttpHeaders
поле, где вы обычно ставите:
Authorization: Basic ThenTHeToken
ContentType: application/json
При проверке с инфраструктурой развертывания BizTalk и предварительной обработки привязок,
Это сгенерированный XML, где вы можете увидеть после токена на предъявителя, на самом деле есть разрыв строки
<TransportTypeData>
<CustomProps><ServiceCertificate vt="8" /><HttpMethodAndUrl vt="8">POST</HttpMethodAndUrl><MaxReceivedMessageSize vt="3">65536</MaxReceivedMessageSize><ClientCertificate vt="8" /><ProxyUserName vt="8" /><UseAcsAuthentication vt="11">0</UseAcsAuthentication><SuppressMessageBodyForHttpVerbs vt="8" /><VariablePropertyMapping vt="8">&lt;BtsVariablePropertyMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" /&gt;</VariablePropertyMapping><SecurityMode vt="8">Transport</SecurityMode><ProxyToUse vt="8">Default</ProxyToUse><EndpointBehaviorConfiguration vt="8">&lt;behavior name="EndpointBehavior" /&gt;</EndpointBehaviorConfiguration><TransportClientCredentialType vt="8">None</TransportClientCredentialType><OpenTimeout vt="8">00:01:00</OpenTimeout><UseSSO vt="11">0</UseSSO><UseSasAuthentication vt="11">0</UseSasAuthentication><CloseTimeout vt="8">00:01:00</CloseTimeout><SendTimeout vt="8">00:01:00</SendTimeout><HttpHeaders vt="8">Authorization: Basic bearertoken=
Content-Type: application/json</HttpHeaders></CustomProps>
</TransportTypeData>
Однако при импорте привязок в приложение BizTalk, а затем при включении выходных заголовков разрыв строки теряется, и BizTalk помещает в одну строку и авторизацию, и тип контента, а затем происходит сбой.
Я не могу это исправить вручную, потому что в других средах развертывание выполняется автоматически через Azure DevOps.
Есть идеи, как добавить разрыв строки?
2 ответа
& lt;HttpHeaders vt="8"& gt;X-API-Key: ${XpertDocBulkCNToken} & #xA; Content-Type: application/json& lt;/HttpHeaders& gt;
Вышеупомянутое сработало для меня.
Я только что добавил пробел() после каждого &, чтобы синтаксический анализатор не обнаруживал xml.
Несмотря на то, что в консоли администратора BizTalk вы не сможете увидеть символ новой строки, BizTalk может определить два заголовка HTTP и отправить их.
Я столкнулся с той же проблемой и решил ее, добавив следующий разделитель между заголовками: WhiteSpace + & # xa; + WhiteSpace в вашем случае:
Авторизация: Basic ThenTHeToken Тип содержимого: приложение/json
NB: я добавил пробелы между символами, чтобы избежать декодирования здесь.