我有一个需要通过动态发送端口发送 JSON 的场景。出于这个原因,我使用 JSON 编码器创建了一个发送管道,并带有选项 Remove Outer Envelope = 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:根级别的数据无效。
如果我用静态端口替换动态端口,一切正常,我可以按预期发送消息。它只是不起作用是我作为动态发送的。
肯定缺少某些东西,有人有任何可以提供帮助的提示吗?