404与ASP.net MVC3和ninject.web.mvc

时间:2011-09-14 13:30:14

标签: asp.net-mvc-3 ninject.web.mvc

我有一个在Visual Studio中运行的MVC3应用程序,但是当发布到Web服务器时,在请求的URL上返回404:/ App / Account / LogOn。问题是我从未创建过帐户控制器或操作LogOn。我不确定为什么Account / LogOn甚至加载或如何修复它。感谢。

我的global.asax.cs文件如下所示:

public class MvcApplication : NinjectHttpApplication
{
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        //filters.Add(new HandleErrorAttribute());
    }

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default", 
            "{controller}/{action}/{id}", 
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
        );

    }

    // Create ninject kernel
    protected override IKernel CreateKernel()
    {
        var kernel = new StandardKernel();
        // Add bindings
        kernel.Bind<IEmployeeRepository>().To<EFEmployeeRepository>();
        kernel.Bind<IDocumentRepository>().To<DocumentRepository>();
        // Load kernel
        kernel.Load(Assembly.GetExecutingAssembly());
        return kernel;
    }

    // Replaces App_Start() when using Ninject
    protected override void OnApplicationStarted()
    {
        base.OnApplicationStarted();
        AreaRegistration.RegisterAllAreas();
        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);
    }
}

1 个答案:

答案 0 :(得分:1)

我最好的猜测是这来自你的web.config,因为这是你创建一个新的MVC项目时的默认登录页面。当您尝试点击已应用[Authorize]属性的操作时,您将在何处重定向。

检查以下内容:

   <authentication mode="Forms">
      <forms loginUrl="~/Account/LogOn" timeout="2880" />
    </authentication>

如果您有自己的登录页面,则需要在此处使用该URL,否则,如果您不使用安全性,请检查带有[Authorize]属性的操作。