0

メッセージを処理するバス エンドポイントがありますが、別のメッセージをこのハンドラー内のバスに戻したいと考えています。

これを行うには、バスへの参照を取得する必要があります。

ただし、次のことを試してみると:

public class ServerEndpoint: IWantToRunAtStartup
{
    public static IBus Bus { get; set; }

    public void Run()
    {
        int x = 5;

        Bus = NServiceBus.Configure.With()
            .DisableTimeoutManager()
            .Log4Net()
            .DefaultBuilder()
            .XmlSerializer()
            .MsmqTransport()
                .IsTransactional(false)
                .PurgeOnStartup(false)
            .UnicastBus()
                .ImpersonateSender(false)
            .CreateBus()
            .Start();

    }

    public void Stop()
    {
    }
}

次に、ユニキャスト構成と Msmq 構成を app.config に入れても、あらゆる種類の構成エラーが発生します。

誰かが私にポインタを提供してもらえますか、これがかなり単純な間違いであることを願っています!!

ありがとう

ダンカン

編集:これはサーバー上にあります。私を混乱させているのは、global.asax App_Start() メソッドで上記のコードを使用して、Web アプリでバスが構成されていることです。しかし、これを ServerEndpoint (ホスト内で実行される実際の「バス」DLL) で実行しようとすると、うまくいきません。

4

2 に答える 2

1

そのために依存性注入を使用します。http://support.nservicebus.com/customer/portal/articles/862398-how-do-i-get-a-reference-to-ibus-in-my-message-handler-

于 2013-02-06T11:42:15.783 に答える
0

すべてのフィードバックに感謝します-私は歩くことができる前に走ろうとしていました。

見た目では、別のエンドポイントにメッセージを送信するには、別のアセンブリ(ServiceBus.Host)をセットアップする必要があります。

バスはDIを使用して自動的に作成されるため、これは結局問題ではありませんでした。

Andreas Ohlund(http://pluralsight.com/training/Courses/TableOfContents/nservicebus)による優れたPluralsightビデオを見て、彼がここで作成した例に従いました(BusStop-Billing Take 2を参照)。

于 2013-02-08T09:58:58.657 に答える