2013-03-07 51 views
1

我試圖在現有的使用Ninject for DI的ASP.Net MVC 4項目中設置SignalR,但每當我嘗試訪問SignalR默認路由(我已確認在路由表),我得到下面的異常拋出:SignalR和Ninject - Ninject沒有返回路由控制器

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

我似乎無法找到任何方式來解決這個問題。

回答

2

好的,自己解決它 - 這不是一個ninject問題,它是一個路由順序問題。

我需要〜/ signalr路由在路由表順序中更高,這意味着移動RouteTable.Routes.MapHubs();進入我的Application_Start的頂部,在RegisterRoutes調用之上。