我今天下载了相当新的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 路由调试器,但我仍然得到 404。
我该怎么做才能找到造成这种情况的原因?