2016-07-01 3 views
1

ダイナミック送信ポートから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"; 

私はエラーを取得するメッセージ送信しようとするたびに:私はダイナミックポートを交換した場合

​​

をすべての静的なポートで動作し、私は期待どおりにメッセージを送信することができます。それはちょうど私がダイナミックとして送ることは機能しません。

何かが欠落していることを確認するには、誰でも助けてくれるヒントがありますか?

+0

BizTalkのどのバージョンですか? – Dijkgraaf

+0

また、パイプラインのXMLアセンブラで試してみましたか?それがエラーを投げているのであれば、それは問題です。 – Dijkgraaf

+0

バージョンはBizTalk 2013 R2です。 XMLアセンブラでのみ問題はありません。 – Ricardo

答えて

0

私は問題を考え出したと思います。 WCF-CustomはXMLメッセージでしか動作しないようですが、WCF-WebHttpに置き換えられました。