1

DI に Ninject を使用する既存の ASP.Net MVC 4 プロジェクトで SignalR をセットアップしようとしていますが、SignalR の既定のルート (ルート テーブルにあることを確認しました) にアクセスしようとすると、次の例外が発生します。スロー:

Exception message: The IControllerFactory 'Infrastructure.NinjectControllerFactory' did not return a controller for the name 'signalr'.

次の方法で Ninject カーネルを SignalR に注入しようとしました。

GlobalHost.DependencyResolver = new NinjectSignalRDependencyResolver(ninjectKernel);

そして、次の方法でデフォルトルートを設定しています:

RouteTable.Routes.MapHubs();

Global.asax Application_Start で

この問題を解決する方法が見つからないようです。

4

1 に答える 1

2

わかりました、自分で解決しました-それはninjectの問題ではなく、ルーティング順序の問題でした.

~/signalr ルートをルーティング テーブルの順序で上位に配置する必要がありました。つまり、RouteTable.Routes.MapHubs(); RegisterRoutes 呼び出しの上にある Application_Start の先頭へのエントリ。

于 2013-03-07T16:08:02.640 に答える