0

クライアントが使用するデスクトップ アプリと、バックエンド処理を行う Win サービスの 2 つのアプリケーションがあります。Rhino Service Bus を使用して、メッセージ経由でバックエンド処理をトリガーできるようにしたいと考えています。このメッセージはクライアント アプリから送信される場合もあれば、win サービスから送信される場合もあります。誰がトリガーしたかは気にしません。だから私はpub subが必要です。問題は、コンソール アプリから問題なくトリガーできることです。サービスからトリガーしようとすると、メッセージのサブスクライバーがありませんというエラーが表示されます。私の設定で何が問題になっていますか?

コンソール app.config

<rhino.esb>
<bus threadCount="1" numberOfRetries="5" endpoint="msmq://localhost/console.debug" />
<messages>
  <add name="MyMessages" endpoint="msmq://localhost/host.debug" />
</messages>

Win サービス app.config

<rhino.esb>
<bus threadCount="1" numberOfRetries="5" endpoint="msmq://localhost/host.debug" />
<messages />

メッセージを送信するためのコードは、両方のアプリで同じです。

private IServiceBus _serviceBus;
....
public void Trigger()
{
    _serviceBus.Publish(new myTriggerCommand()); 
}
4

1 に答える 1

0

そのため、RSB は自分自身への発行メッセージを処理できないようです。このブログは、同じプロセスで公開および使用するために見つけました。これは合理的な解決策のようです。ただし、最終的には、ホスト内でのトリガーにメッセージングを使用しないことにしました。

http://blog.irm.se/blogs/eric/archive/2011/06/19/Consuming-Events-in-the-Same-Process-as-the-Publisher-with-Rhino-Service-Bus.aspx

于 2014-02-07T00:59:15.767 に答える