2011-01-16 13 views
1

これは本当に一般的なパターンなので、実装するのは悪夢だと思っています!WCFを持つPub/Sub用のnServiceBusサンプルはありますか?

-

WcfIntegrationサンプルは、WCFエンドポイントを経由してメッセージを受け取ることに私が探しているほとんどのものです。ただし、それ自体でメッセージを受信します。私は別の加入者が欲しい。

私がしようとしているのは、WcfIntegrationとpub/subサンプルをマージすることです。

本当に必要なのは、Webサイトがクラスライブラリを呼び出すことです。このクラスライブラリは、パブリッシャのWCFエンドポイントを呼び出します。

サブスクライバは、パブリッシャがパブリッシュしたメッセージを受信し、何でもそれを行います。

-

ロブ

+0

"with WCF"とはどういう意味ですか - パブリッシャーとサブスクライバ間の通信はWCF経由で行われるのでしょうか? –

+0

こんにちはUdi、私はあなたが好きな場合はあなたのサンプルに配布することができるサンプルを書いた。私は今すぐアップロードしており、d/lリンクを投稿します。 –

+0

http://bit.ly/hM4qDw –

答えて

1
  • あなたは、インターフェイスIEventMessageServiceを必要はありません。 NSBがそれを処理します。
  • 私のローカルの例では、メッセージを自分でマップしました。あなたのために、これは次のようになります。

    <UnicastBusConfig><MessageEndpointMappings> 
    <add Messages="MyMessages" Endpoint="MyPublisherInputQueue"/> 
    </MessageEndpointMappings></UnicastBusConfig> 
    
  • また、あなたの実際のハンドラに公開移動する必要があります。キューがトランザクションである、すなわち、

    public void Handle(EventMessage message)  
    { 
        bus.Publish(message); 
        bus.Return((int)ErrorCodes.None); 
    } 
    
  • は、インフラストラクチャがプライミングされることを確認し、MSDTCが実行されています。今、それだけで(起動時に)一回起こっています。私は、サービスが呼び出された後、マッピングが、存在しないので、それはメッセージをどこに置くか知っていないことを賭けて喜ん

は、(それがBus.Send()内部で呼び出します)。それは問題ではなかったので、私は加入者を見ていませんでした。

+0

こんにちはアダム。 IEventMessageServiceはNSBサンプルコードにあり、クライアントがWCFエンドポイントを呼び出すために必要です。 unicastbusconfigは、自身に送信するように設定できます。しかし、ハンドラはすべてのメッセージをピックアップして再発行します。つまり、ループが進行中であり、メッセージを受け取ったばかりのメッセージを再パブリッシュし続けることを意味します。 –

+0

また、それはNSBサンプルが提供するハンドラです。私は使用すべき別のものがありますか? –

関連する問題