Получение Ресурс не найден. ошибка при использовании Ninject

Я работаю над приложением ASP.NET MVC 3.0, используя Ninject в качестве своей среды внедрения зависимостей.

Итак, я унаследовал свой контроллер от NinjectHttpApplication следующим образом:

public class MvcApplication : NinjectHttpApplication
{
    protected override void OnApplicationStarted()
    {
        base.OnApplicationStarted();
    }

    protected void Application_Start()
    {
        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);
        AreaRegistration.RegisterAllAreas();
        DependencyResolver.SetResolver(new NinjectDependencyResolver(Kernel));
    }

    protected override Ninject.IKernel CreateKernel()
    {
        return new StandardKernel(new QueriesModule());
    }

    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute());
    }

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.MapRoute(
            "Default",
            "{controller}/{action}",
            new { controller = "Home", action = "Index" },
            new string[] { typeof(HomeController).Namespace }
        );
    }
}

Но всякий раз, когда я запускаю приложение и пытаюсь перейти к любому из моих контроллеров, я получаю сообщение об ошибке:

Ресурс не может быть найден.

Описание: HTTP 404. Ресурс, который вы ищете (или одна из его зависимостей), мог быть удален, его имя было изменено или он временно недоступен. Просмотрите следующий URL-адрес и убедитесь, что он написан правильно.

Запрашиваемый URL-адрес: /Home/Index

Чем это вызвано и как это исправить?


person Jonathan    schedule 28.07.2012    source источник


Ответы (1)


Оказывается, это происходило потому, что класс NinjectHttpApplication, от которого я наследую, вызывает метод OnApplicationStarted() при запуске. Таким образом, решение состоит в том, чтобы удалить метод Application_Start() и переместить весь этот код в OnApplicationStarted().

person Jonathan    schedule 28.07.2012