Я получаю следующий желтый экран смерти: «IControllerFactory 'Ninject.Web.Mvc.NinjectControllerFactory' не вернул контроллер для имени« Продукты ».» Зачем? Вот мои настройки
Обновление
Эта конфигурация работает на моем компьютере, но не на компьютере моего коллеги, хотя наши компьютеры имеют одинаковый код и конфигурацию.
Код
public class MvcApplication : NinjectHttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Products", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
protected override void OnApplicationStarted()
{
RegisterRoutes(RouteTable.Routes);
RegisterAllControllersIn(Assembly.GetExecutingAssembly());
}
protected override IKernel CreateKernel()
{
var modules = new INinjectModule[]
{
new WebModule()
};
return new StandardKernel(modules);
}
}
public class WebModule : NinjectModule
{
public override void Load()
{
Bind<IAuthoringRepository>()
.ToProvider(new AuthoringProvider())
.InSingletonScope();
Bind<ICatalogEntity>()
.ToProvider(new ProductProvider())
.InSingletonScope();
Bind<TargetData>()
.ToProvider(new TargetDataProvider()).InSingletonScope();
}
}
public class AuthoringProvider : Provider<IAuthoringRepository> {
protected override IAuthoringRepository CreateInstance(IContext context)
{
WindowsIdentity identity = WindowsIdentity.GetCurrent();
IAuthoringRepository result = RepositoryFactory.CreateAuthoringRepository(identity);
return result;
}
}
public class TargetDataProvider : Provider<TargetData>
{
protected override TargetData CreateInstance(IContext context)
{
return new TargetData { Language = Language.En, Province = Province.ON };
}
}
public class ProductProvider : Provider<Product>
{
protected override Product CreateInstance(IContext context)
{
return new Product();
}
}
Подробнее об ошибке
IControllerFactory 'Ninject.Web.Mvc.NinjectControllerFactory' не возвращает контроллер для имени 'Products'.
Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.
Сведения об исключении:
System.InvalidOperationException: IControllerFactory 'Ninject.Web.Mvc.NinjectControllerFactory' не вернул контроллер для имени 'Продукты'.
Ошибка источника:
Во время выполнения текущего веб-запроса было сгенерировано необработанное исключение. Информация о происхождении и местонахождении исключения может быть идентифицирована с помощью приведенной ниже трассировки стека исключений.
Трассировка стека:
[InvalidOperationException: The IControllerFactory 'Ninject.Web.Mvc.NinjectControllerFactory' did not return a controller for the name 'Products'.]
System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory) +365
System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state) +160
System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, Object state) +80
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) +45
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8837208
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184