Этот 404 кажется неизбежным - что я делаю не так? [Ninject 2.0 с ASP.NET MVC 2 в .NET 4] - PullRequest
1 голос
/ 02 апреля 2010

Сегодня я скачал довольно новые Ninject 2.0 и Ninject.Web.Mvc (для mvc2) и успешно собрал их для .NET 4 (конфигурация выпуска). При попытке запустить приложение с помощью Ninject 2.0 я получаю 404 ошибки и не могу понять, почему.

Это мой global.asax.cs (слегка сокращенно, для краткости):

using ...
using Ninject;
using Ninject.Web.Mvc;
using Ninject.Modules;

namespace Booking.Web
{
    public class MvcApplication : NinjectHttpApplication
    {        
        protected override void OnApplicationStarted()
        {
            Booking.Models.AutoMapperBootstrapper.Initialize();
            RegisterAllControllersIn(Assembly.GetExecutingAssembly());
            base.OnApplicationStarted();
        }

        protected void RegisterRoutes(RouteCollection routes)
        {
            ...
            routes.MapRoute(
                "Default",
                "{controller}/{action}/{id}",
                new { controller = "Entry", action = "Index", id = "" }
            );    
        }

        protected override IKernel CreateKernel()
        {
            INinjectModule[] mods = new INinjectModule[] {...};
            return new StandardKernel(mods);
        }
    }
}

EntryController существует и имеет метод Index, который просто выполняет return View(). Я отладил и убедился, что вызов RegisterAllControllersIn() выполнен. Я также пытался использовать Phil Haacks Routing отладчик , но я все еще получаю 404.

Что мне делать, чтобы найти причину этого?

1 Ответ

0 голосов
/ 02 апреля 2010

Ваши маршруты зарегистрированы? Это вызывается из базового класса?

Также убедитесь, что вы правильно регистрируете свои контроллеры . Я не уверен, как фабрика контроллеров Ninject ожидает этого, но для этого может потребоваться определенное имя или что-то в этом роде.

...