【问题标题】:How to preprocess bindings file with Carriage Returns for BizTalk如何使用 BizTalk 的回车预处理绑定文件
【发布时间】:2019-06-25 17:14:29
【问题描述】:

我有一个 BizTalk 的绑定 XML 文件,端口是 WCF-WebHttp,它基本上是用来调用休息服务的。

这些端口有一个HttpHeaders 字段,您通常会在其中放置:

Authorization: Basic ThenTHeToken
ContentType: application/json

检查 BizTalk 部署框架并预处理绑定时,

这是生成的XML,在bearer token后面可以看到,其实有个换行符

<TransportTypeData>
          &lt;CustomProps&gt;&lt;ServiceCertificate vt="8" /&gt;&lt;HttpMethodAndUrl vt="8"&gt;POST&lt;/HttpMethodAndUrl&gt;&lt;MaxReceivedMessageSize vt="3"&gt;65536&lt;/MaxReceivedMessageSize&gt;&lt;ClientCertificate vt="8" /&gt;&lt;ProxyUserName vt="8" /&gt;&lt;UseAcsAuthentication vt="11"&gt;0&lt;/UseAcsAuthentication&gt;&lt;SuppressMessageBodyForHttpVerbs vt="8" /&gt;&lt;VariablePropertyMapping vt="8"&gt;&amp;lt;BtsVariablePropertyMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" /&amp;gt;&lt;/VariablePropertyMapping&gt;&lt;SecurityMode vt="8"&gt;Transport&lt;/SecurityMode&gt;&lt;ProxyToUse vt="8"&gt;Default&lt;/ProxyToUse&gt;&lt;EndpointBehaviorConfiguration vt="8"&gt;&amp;lt;behavior name="EndpointBehavior" /&amp;gt;&lt;/EndpointBehaviorConfiguration&gt;&lt;TransportClientCredentialType vt="8"&gt;None&lt;/TransportClientCredentialType&gt;&lt;OpenTimeout vt="8"&gt;00:01:00&lt;/OpenTimeout&gt;&lt;UseSSO vt="11"&gt;0&lt;/UseSSO&gt;&lt;UseSasAuthentication vt="11"&gt;0&lt;/UseSasAuthentication&gt;&lt;CloseTimeout vt="8"&gt;00:01:00&lt;/CloseTimeout&gt;&lt;SendTimeout vt="8"&gt;00:01:00&lt;/SendTimeout&gt;&lt;HttpHeaders vt="8"&gt;Authorization: Basic bearertoken=
          Content-Type: application/json&lt;/HttpHeaders&gt;&lt;/CustomProps&gt;
        </TransportTypeData>

但是,当将绑定导入 BizTalk 应用程序时,在输出标题上,换行符丢失,并且 BizTalk 将授权和内容类型放在同一行,然后失败。

我无法手动修复此问题,因为在其他环境中部署是通过 Azure DevOps 自动完成的。

知道如何添加换行符吗?

【问题讨论】:

  • 您是否尝试过从其他环境之一导出绑定并查看其中的样子?
  • 它看起来一样,有一个新行,但是当我以这种方式导入它时,新行被删除了
  • 好吧,你不应该在适配器的 HttpHeader 中硬编码承载令牌,因为这不安全。我已经解决了这个问题,方法是使用适配器上的基本身份验证设置,或者在不起作用的地方,使用自定义端点行为从 SSO 查找凭据并添加该标头。
  • 插入的换行符是程序读取文本的产物。我们在记事本中打开了一个导出的绑定文件。保存而不更改会破坏它。您在部署期间是否以某种方式处理文件?该应用程序有行大小限制吗?

标签: xml biztalk biztalk-2010 btdf


【解决方案1】:

我遇到了同样的问题,我在标题之间添加了以下分隔符来解决它: WhiteSpace + & # x a; + 空白 在你的情况下:

授权:基本 ThenTHeToken & # x a;内容类型:应用程序/json

注意:我在字符之间添加了空格以避免此处解码

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-25
    • 2013-11-27
    • 2018-08-03
    相关资源
    最近更新 更多