1

我正在尝试在使用 Ninject 进行 DI 的现有 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(); 进入我的 Application_Start 顶部,在 RegisterRoutes 调用上方。

于 2013-03-07T16:08:02.640 回答