0

現在 NServiceBus (v3) サービスにコマンドを送信する ASP.NET MVC アプリケーションがあります。

このサービスは、ユーザーにリアルタイムの通知を表示できるように、Web アプリケーション内でサブスクライブする必要があるイベントを発行します。

バスは現在、Web アプリケーション内で以下のように初期化されています。

private static IBus ConfigureBus()
{
    return NServiceBus.Configure.With()
        .DefaultBuilder()
        .XmlSerializer()
        .MsmqTransport()
            .IsTransactional(false)
            .PurgeOnStartup(true)
        .UnicastBus()
            .LoadMessageHandlers()
        .CreateBus()
        .Start(() => Configure.Instance.ForInstallationOn<Windows>().Install());
}

web.config で次の構成を使用します。

  <!-- NServiceBus -->
  <MessageForwardingInCaseOfFaultConfig ErrorQueue="error" />
  <UnicastBusConfig ForwardReceivedMessagesTo="audit">
    <MessageEndpointMappings>
      <add Assembly="Foo.DocumentService.Messages" Endpoint="Foo.DocumentService.Host" />
    </MessageEndpointMappings>
  </UnicastBusConfig>

しかし、Web アプリケーション内で作成したイベント ハンドラーが呼び出されず、Web アプリケーション用のキューが作成されず、ホストに送信されたサブスクリプション メッセージが表示されません。

何か不足していますか?

4

1 に答える 1

0

ロギングを有効にした後、NServiceBus が実際には初期化されていないことがわかりました (これが、キューが作成されなかった理由です)。

問題は、バスが遅延して初期化されていたため、Ninject をどのように構成したかであることが判明しました。バインディングをすばやく変更すると、すべてが機能しました。

于 2013-09-11T19:27:59.767 に答える