0

エンベロープ メッセージ (EM) があります。この EM には、(ルーティングのために) コンテキストで昇格されるいくつかの要素があり、さらに使用するために実際のスキーマ インスタンスを保持する Any 要素 (ペイロードと呼ばれる) が 1 つあります (他のオーケストレーションはそれにサブスクライブしています)。ペイロード インスタンス)。

これは、要求メッセージを受信し、応答メッセージ (要求のいくつかの要素を持ち、新しく生成された一意のトランザクション ID を含む) とエラー メッセージ (該当する場合) を返す汎用サービス (WCF、要求応答) です。

ペイロードは、EM のいくつかのコンテキスト プロパティを使用して MessageBox (直接バインディング) で公開する必要があります。

これを最も効果的に行うにはどうすればよいですか?

4

2 に答える 2

0

確認するだけでいいですか

  1. WCF クライアントは、エンベロープ スキーマに一致するメッセージを送信します
  2. エンベロープ スキーマを、ペイロード処理オーケストレーション用に内部に含まれる 1 つ以上のペイロード メッセージにデバッチしたいと考えています。
  3. ? 成功/失敗の応答で WCF クライアントに応答するまで、すべてのペイロード メッセージが処理されるまで待機する必要がありますか (つまり、応答はペイロード メッセージの完了に依存します)。

ポイント 3) が必要ない場合、WCF オーケストレーションは、ペイロードに何が起こるかを心配することなく、「はい」メッセージを WCF クライアントに送り返すことができます。

WCF 受信場所の標準 XMLReceive は、メッセージを Envelope スキーマとして認識している限り、メッセージを自動的にデバッチできるはずです。

<b:schemaInfo is_envelope="yes" xmlns:b="somexmlns"/>
<b:recordInfo body_xpath="xpathtoroot"/>

ただし、ポイント 3 が必要な場合は、WCF 要求応答を使用しているため、ペイロード処理に応じてクライアントが同期応答を返す必要があることがわかります。ペイロード処理の進行状況と結果を WCF orch に関連付ける必要があるため、標準のエンベロープ デバッチを使用してこれを行うのは困難です。代わりに、外側の (エンベロープ) スキーマを非エンベロープとして保持し、 WCF オーチでカスタム受信パイプラインを使用してメッセージを分割し、それぞれをループして、ペイロード処理オーケストレーションを呼び出します。

http://mstecharchitect.blogspot.com/2008/12/debatching-biztalk-xml-messages.html

于 2011-10-21T14:30:04.857 に答える
0

受信パイプライン内で xml 逆アセンブラー コンポーネントを使用してエンベロープ スキーマを処理する方法を知っていますか? これを試したかどうか、またはこれが直面している課題であるかどうかは、あなたの質問からは明らかではありません。

そうでない場合は、こちらをお読みください: http://msdn.microsoft.com/en-us/library/aa546772(v=BTS.20).aspx

于 2011-10-21T09:47:46.110 に答える