2009-09-01 4 views
1

私は "enevelope"スキーマとボディスキーマを持っています。ボディを指すように "envelope"に正しいプロパティを設定しています。 私はそれにルーティングすることができるように、本文メッセージの値を宣伝するためのプロパティスキーマも持っています。Wcfの受信場所でプロパティのプロモーションが行われない

ファイルドロップ受信場所と2つの送信ポートを設定しました。プロモートされたプロパティの別の値をサブスクライブする各送信ポート。受信場所はXmlReceiveを使用し、送信ポートは両方ともXmlTransmitを使用します。

Rcvの場所で1つの封筒メッセージをドロップすると、Btsはそれをピックアップして分割し、プロパティをプロモートし、送信ポートが関連するメッセージを取り出して処理します。

ファイルドロップはテストでは問題ありませんでしたが、実際のシナリオは少し異なります。 クライアントがWcf経由で複数のドキュメント要素を含む「エンベロープ」スキーマを送信するようにしたい

公開ウィザードを使用してエンベロープスキーマをWcfエンドポイントとして公開しました。新しい受信場所を作成させます。このエンドポイントと話すためにWcfクライアントに接続し、メッセージを送信しました。

BizTalkの送信ポートで何も変更せずに、私は同じ結果を期待しました。 しかし、今私はルーティングの失敗を取得します。

昇格されたプロパティでフィルタする送信ポートの余分なフィルタを削除すると、ルーティングに失敗します。

だから、私の財産の宣伝はWcf受信場所では起こっていないようです。 私はチェックしました。 Wcf受信場所がXmlReceiveを使用しています。

何がありますか? どうすれば修正できますか?

+0

あなたがSendPortsに持っている他のフィルタは何ですか? – magnus

+0

それは奇妙に聞こえる。フィルタを削除すると、BTSは着信メッセージの送信先をどのように知ることになりますか? メッセージボックスにメッセージが残っていて、フィルタなしのサブスクリプションがないため、ルーティングエラーが発生すると思いました。うーん、私はこれを自分で試してみる。 –

+0

私は彼が2つのフィルターを持っていると思います。 1つはBTS.ReceivePortName == XXX && HisOwn.Promoted.Propoerty == xxxです。 – magnus

答えて

0

WCFを使用するように変更した結果、受信メッセージの名前空間が変更されたと思います。

これにより、プロパティの昇格が受信メッセージと一致しなくなる可能性があります。

BizTalk Server管理ツールの追跡メッセージでプロパティのプロモーションを表示できます。

関連する問題