404 с ASP.net MVC3 и ninject.web.mvc - PullRequest
       2

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

1 голос
/ 14 сентября 2011

У меня есть приложение MVC3, которое работает в Visual Studio, но при публикации на веб-сервере возвращает 404 по запрошенному URL: / 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 Ответ

1 голос
/ 14 сентября 2011

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

Проверьте раздел, который говорит:

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

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

...