Получение "Ресурс не найден." ошибка при использовании 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/ Индекс

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

1 ответ

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

Другие вопросы по тегам