0

全て。私は NServiceBus を使い始めたばかりで、Pluralsight とインターネットのおかげで、基本的なことをかなりよく理解しています。ストック MVC 4 プロジェクトがあり、コントローラーの依存性注入をセットアップしました (このブログ投稿のおかげです)。

Global.asax でバスをセットアップする方法は次のとおりです。

_bus = Configure.With()
                .DefaultBuilder()
                .ForMVC()
                .Log4Net()
                .XmlSerializer()
                .MsmqTransport()
                .UnicastBus()
                .SendOnly();

グローバルのバスにアクセスする必要があるため、ローカルのプライベート変数に割り当てて、Session_End でいくつかのことを実行できるようにします。ただし、実行すると、次のエラーが発生します。

要求されたサービス 'System.Web.Mvc.IControllerFactory' は登録されていません。この例外を回避するには、コンポーネントを登録してサービスを提供するか、IsRegistered() を使用してサービス登録を確認するか、ResolveOptional() メソッドを使用してオプションの依存関係を解決します。

私のスタック トレースによると、障害ポイントは Autofac が型を解決しようとしたときです。正気を保つために、プライベート変数を削除し、Configure ステートメントだけを使用しました。同じことです。また、このアプリには Ninject が接続されています。これが私の選択した IoC であるためです。なんらかの方法で Autofac に干渉していると考えて、方程式から Ninject を削除しましたが、まだ機能していません。

だから私の質問は、私は何が間違っているのですか? 何か不足していますか?NServiceBus を使用するのはこれが初めてですが、私が見たすべてのことから、これはうまくいくはずです。どんな情報でも非常に役立ちます。ありがとう。

4

2 に答える 2

1

MVC4 サンプルをご覧ください (これは次のメジャー リリースである v4 に対して実行されています):
https://github.com/NServiceBus/NServiceBus/tree/develop/Samples/Messaging.Msmq/MyWebClient

于 2013-02-15T00:00:46.647 に答える
0

ジョン、あなたのコードから解決策を見つけました! これが私の問題でした。これは、私の Dependency Resolver Adapter にあったものです。

public object GetService(Type serviceType)
{
    _builder.Build(serviceType);
}

私がする必要があったのは、MVC4 の例で行ったことです。

public object GetService(Type serviceType)
{
    return (Configure.Instance.Configurer.HasComponent(serviceType)) ? _builder.Build(serviceType) : null;
}

私がそれをしたら、それはすべて自分自身を整理しました。助けてくれてありがとう!

于 2013-02-15T17:18:07.663 に答える