404 с ASP.net MVC3 и ninject.web.mvc

У меня есть приложение MVC3, которое работает в Visual Studio, но при публикации на веб-сервере возвращает 404 по запрошенному URL-адресу: /App/Account/LogOn. Проблема в том, что я никогда не создавал контроллер учетных записей или действие 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);
    }
}

person decompiled    schedule 14.09.2011    source источник


Ответы (1)


Лучше всего предположить, что это происходит из вашего web.config, так как это страница входа по умолчанию при создании нового проекта MVC. Именно сюда вы перенаправляетесь, когда пытаетесь выполнить действие, к которому применен атрибут [Authorize].

Проверьте раздел, в котором говорится:

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

Если у вас есть собственная страница входа, вам нужно перейти по этому URL-адресу здесь, в противном случае, если вы не используете безопасность, проверьте действия, которые содержат атрибут [Authorize].

person Jon Egerton    schedule 14.09.2011