2012-07-28 66 views
0

我正在使用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 } 
     ); 
    } 
} 

但每当我运行应用程序并尝试浏览到我的任何控制器,我得到的错误:

The resource cannot be found.

Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.

Requested URL: /Home/Index

这是什么原因造成的?我该如何解决?

回答

1

原来,这是因为我继承的NinjectHttpApplication类在启动时调用OnApplicationStarted()方法。所以解决方案是删除Application_Start()方法并将所有代码移动到OnApplicationStarted()

相关问题