2009-08-10 4 views
0

既存の.net 3.5 WCFサービスがあり、サーバー側でPreserveObjectReferencesがtrueに設定されています。BizTalk 2006 R2はPreserveObjectReferences = trueのWCFサービスのシリアル化された応答をどのように消費できますか?

PreserveObjectReferencesをfalseに設定すると、BizTalkは応答を消費する可能性があります。

PreserveObjectReferences応答ペイロードを消費するのBizTalkを取得する方法は...

PreserveObjectReferencesありますが、AZで現れ:idが対象とAZの最初のインスタンスに対して発生:参照後続のオブジェクトの出現のために発生します:

<b:xyz *z:Id="5"* i:type="abc">...</b:xyz> 
... 
<b:xyz *z:ref="5"* /> 
+0

何が起こりますか?何がうまくいかない?結局のところ、有効なxmlです(ただし、標準的な "ツリー"ではありません)。だから何が壊れますか? –

答えて

0

BizTalkとJAX-Bのどちらも、さまざまな理由でペイロードを処理する際に問題があります。 ID/IDREFはサポートされているXMLスキーマオプションですが、すべての実装で問題が発生しているようです。 JAX-Bについて

IDREF及びゼロ=真の両方を指定した場合、それがオブジェクトにペイロードマーシャルすることができません:falseに保つ真=ゼロまたは設定オブジェクト参照の

<b:xyz z:ref="5" nil="true" /> 

除去(すなわちありませんIDREF機能を利用AAペイロードは、Javaプログラマーがこの問題を回避することができることを意味返す。

のBizTalkは、XSLTトランスフォームまたはその他の手段を通じてIDREFサポートなしでXMLを再水和することにより、この問題を回避することができます。

を両方に当社のソリューションオブジェクト参照の保存がオフになっていることを確認することでした。両方のシステムを大幅な手間をかけずに統合することができました。

0

xsdを生成する際にPreserveObjectReferencesがどのように設定されましたか?

xsdはWSDLのWCFサービスから生成されます。このWSDLではこれらの余分な属性が定義されていないと、BizTalkはそれらが存在することを認識せず、BizTalkは例外をスローします。 WSDLを生成するときにDataContractSerializerがこれらの属性をインクルードするかどうかはわかりません。 WSDLの生成中にDataContractSerializerにこれらの属性が含まれていない場合は、これらの属性が追加される要素のxs:any属性を許可するように応答メッセージのxsdを変更する必要があります。

+0

ありがとうございました。私たちはもう一度それを見に戻ってきます。 – JTew

関連する問題