【发布时间】:2019-06-25 17:14:29
【问题描述】:
我有一个 BizTalk 的绑定 XML 文件,端口是 WCF-WebHttp,它基本上是用来调用休息服务的。
这些端口有一个HttpHeaders 字段,您通常会在其中放置:
Authorization: Basic ThenTHeToken
ContentType: application/json
检查 BizTalk 部署框架并预处理绑定时,
这是生成的XML,在bearer token后面可以看到,其实有个换行符
<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 自动完成的。
知道如何添加换行符吗?
【问题讨论】:
-
您是否尝试过从其他环境之一导出绑定并查看其中的样子?
-
它看起来一样,有一个新行,但是当我以这种方式导入它时,新行被删除了
-
好吧,你不应该在适配器的 HttpHeader 中硬编码承载令牌,因为这不安全。我已经解决了这个问题,方法是使用适配器上的基本身份验证设置,或者在不起作用的地方,使用自定义端点行为从 SSO 查找凭据并添加该标头。
-
插入的换行符是程序读取文本的产物。我们在记事本中打开了一个导出的绑定文件。保存而不更改会破坏它。您在部署期间是否以某种方式处理文件?该应用程序有行大小限制吗?
标签: xml biztalk biztalk-2010 btdf