我有一个在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);
}
}
答案 0 :(得分:1)
我最好的猜测是这来自你的web.config,因为这是你创建一个新的MVC项目时的默认登录页面。当您尝试点击已应用[Authorize]
属性的操作时,您将在何处重定向。
检查以下内容:
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
如果您有自己的登录页面,则需要在此处使用该URL,否则,如果您不使用安全性,请检查带有[Authorize]
属性的操作。