BizTalk Json 编码器和动态端口

问题描述 投票:0回答:2

我有一个场景,我需要通过动态发送端口发送 JSON。因此,我使用 JSON 编码器创建了一个发送管道,并带有以下选项 删除外层信封 = true。

我有与动态端口关联的管道,并且该管道同时具有 Xml 汇编器和 Json 编码器(我也尝试过不使用 xml 汇编器,结果是相同的)。

我的请求消息构造形状具有以下代码:

varXml.LoadXml(
"<ns0:DataMigrationRequest xmlns:ns0=\"http://temp">"+
  "<ns0:DataSets>Local Products</ns0:DataSets>"+
  "<ns0:Country>Spain</ns0:Country>"+
  "</ns0:DataMigrationRequest>"
);

msgRequest = varXml;

msgRequest(WCF.SuppressMessageBodyForHttpVerbs)="POST"; 
msgRequest(WCF.TransportClientCredentialType) = "None";
msgRequest(WCF.AlgorithmSuite) = "Default";
msgRequest(WCF.SecurityMode)="Transport";
msgRequest(WCF.HttpMethodAndUrl)=@"POST"; 
msgRequest(BTS.IsDynamicSend) = true;

msgRequest(WCF.BindingType)="customBinding";
msgRequest(WCF.Action)="";
msgRequest(WCF.BindingConfiguration)=@"<binding name=""customBinding""><httpsTransport /></binding>";

msgRequest(WCF.EndpointBehaviorConfiguration) = @"
<behavior name=""customBehavior"">
    <CustomBehavior />
</behavior>";

Dynamic_Port(Microsoft.XLANGs.BaseTypes.Address) =     System.String.Format("https://localhost/temp");
Dynamic_Port(Microsoft.XLANGs.BaseTypes.TransportType)="WCF-Custom";  

每次我尝试发送消息时都会收到错误:

错误详细信息:System.Xml.XmlException:根级别的数据无效。

如果我用静态端口替换动态端口,一切都会正常,并且我能够按预期发送消息。我作为动态发送是行不通的。

肯定缺少了一些东西,有人有任何可以提供帮助的提示吗?

json biztalk biztalk-2013r2
2个回答
0
投票

我想我已经解决了这个问题。看来 WCF-Custom 只能处理 XML 消息,因此我替换为 WCF-WebHttp。


0
投票

将 WCF-BasicHttp 更改为 WCF-WebHttp 对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.