ダイナミック送信ポートからJSONを送信する必要があるシナリオがあります。そのため、オプションの Remove Outer Envelope = trueを指定してJSONエンコーダを使用して送信パイプラインを作成しました。BizTalk Jsonエンコーダとダイナミックポート
ダイナミックポートにパイプラインが関連付けられていて、パイプラインには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)[email protected]"POST";
msgRequest(BTS.IsDynamicSend) = true;
msgRequest(WCF.BindingType)="customBinding";
msgRequest(WCF.Action)="";
msgRequest(WCF.BindingConfiguration)[email protected]"<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";
私はエラーを取得するメッセージ送信しようとするたびに:私はダイナミックポートを交換した場合
をすべての静的なポートで動作し、私は期待どおりにメッセージを送信することができます。それはちょうど私がダイナミックとして送ることは機能しません。
何かが欠落していることを確認するには、誰でも助けてくれるヒントがありますか?
BizTalkのどのバージョンですか? – Dijkgraaf
また、パイプラインのXMLアセンブラで試してみましたか?それがエラーを投げているのであれば、それは問題です。 – Dijkgraaf
バージョンはBizTalk 2013 R2です。 XMLアセンブラでのみ問題はありません。 – Ricardo