私は "enevelope"スキーマとボディスキーマを持っています。ボディを指すように "envelope"に正しいプロパティを設定しています。 私はそれにルーティングすることができるように、本文メッセージの値を宣伝するためのプロパティスキーマも持っています。Wcfの受信場所でプロパティのプロモーションが行われない
ファイルドロップ受信場所と2つの送信ポートを設定しました。プロモートされたプロパティの別の値をサブスクライブする各送信ポート。受信場所はXmlReceiveを使用し、送信ポートは両方ともXmlTransmitを使用します。
Rcvの場所で1つの封筒メッセージをドロップすると、Btsはそれをピックアップして分割し、プロパティをプロモートし、送信ポートが関連するメッセージを取り出して処理します。
ファイルドロップはテストでは問題ありませんでしたが、実際のシナリオは少し異なります。 クライアントがWcf経由で複数のドキュメント要素を含む「エンベロープ」スキーマを送信するようにしたい
公開ウィザードを使用してエンベロープスキーマをWcfエンドポイントとして公開しました。新しい受信場所を作成させます。このエンドポイントと話すためにWcfクライアントに接続し、メッセージを送信しました。
BizTalkの送信ポートで何も変更せずに、私は同じ結果を期待しました。 しかし、今私はルーティングの失敗を取得します。
昇格されたプロパティでフィルタする送信ポートの余分なフィルタを削除すると、ルーティングに失敗します。
だから、私の財産の宣伝はWcf受信場所では起こっていないようです。 私はチェックしました。 Wcf受信場所がXmlReceiveを使用しています。
何がありますか? どうすれば修正できますか?
あなたがSendPortsに持っている他のフィルタは何ですか? – magnus
それは奇妙に聞こえる。フィルタを削除すると、BTSは着信メッセージの送信先をどのように知ることになりますか? メッセージボックスにメッセージが残っていて、フィルタなしのサブスクリプションがないため、ルーティングエラーが発生すると思いました。うーん、私はこれを自分で試してみる。 –
私は彼が2つのフィルターを持っていると思います。 1つはBTS.ReceivePortName == XXX && HisOwn.Promoted.Propoerty == xxxです。 – magnus