1

NServiceBus 3.2.7、Castle Windsor 3.1、およびASP.NetMVC4を使用しています。現在Windsorチュートリアルを使用してWindsorを構成しています... Windsorチュートリアル-ASP.NETMVC3アプリケーション

この構成内でNServiceBusをセットアップする方法がわかりません。インストーラーパターンを維持したいのですが、ホストを実行しません(私は信じています)。このソリューションの中には、すべてのメッセージを処理するホストプロセスがあり、すべてのコンテナー登録を処理するWindsorを使用した一般的なEndpointconfigurationを使用します。

Webプロジェクトにメッセージを送信させるのは後から考えたものであり、NServiceBusを追加するようにWebプロジェクトを構成した方法を変更する必要はありません。誰かがこれを行う方法の例を提供できるとしたら、それは次のようになります。素晴らしい。チュートリアルの永続化機能と同様の機能にあると思いますが、これを適切に行う方法がまだ少しわかりません。

4

1 に答える 1

1

それはかなり単純であることが判明しました。

別のインストーラークラスを作成するだけです(CastleWindsorBuilder()コンテナーが渡される必要があるようです。ファシリティを作成しようとしましたが、これが私の問題でした。)次のようなインストーラークラスを作成しました。

public class NServiceBusInstaller: IWindsorInstaller {
    public void Install(IWindsorContainer container, IConfigurationStore store) {
        Configure.With()
            .DefineEndpointName(ConfigurationManager.AppSettings["InputQueue"])
            .CastleWindsorBuilder(container)
            .XmlSerializer()
            .MsmqTransport()
            .UnicastBus()
                .SendOnly();
    }
}

AppSettingsキーは、プロセスホストもメッセージを期待している入力キューであるため、コントローラーからメッセージを送信するとすぐに、このキューに配置され、ホストはすぐにメッセージを受け取ります。また、これを行うことで、テストと本番環境にデプロイするときに適切なサーバーを割り当てることができます。

幸い、これがMVCアプリケーションで機能するために必要なすべての構成であり、Windsor3.1のリダイレクトも配置する必要がありました。

于 2012-10-18T18:09:02.930 に答える