Это странный.
Веб-приложение, над которым я работал в течение нескольких месяцев, работало совершенно нормально всего два дня назад.
Базовая структура, о которой идет речь, состоит из ряда областей (основная проблема, связанная с областью «Администратор»), контроллера / вида по умолчанию на самом высоком уровне проекта MVC и системы Castle.Windsor DI.
Совершенно неожиданно на странице по умолчанию для раздела администратора теперь отображается сообщение «ресурс не найден». Это сообщение не зависит от того, получаю ли я доступ к этой странице через RedirectToAction (после входа в систему) или через стандартный возвратный просмотр (...) через систему меню.
У кого-нибудь есть причина, почему этот конкретный маршрут больше не действителен? Или что здесь происходит?
NB:
- Маршруты по умолчанию в другой области по-прежнему правильно отображаются
- Я могу получить доступ к любой другой странице, используя прямой URL-адрес в адресной строке.
- Маршрут по умолчанию для администратора (и 8 других, которые мне требуются) хорошо отображаются в таблице маршрутов
Материал Global.asax:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterModelBinders();
RegisterRoutes(RouteTable.Routes);
ServiceLocator.SetLocatorProvider(() => new WindsorServiceLocator(_container));
BoostrapContainer();
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "LogOn", id = UrlParameter.Optional }
);
}
Регистрация администратора:
public override string AreaName
{
get
{
return "Admin";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { controller = "AdminDashboard", action = "AdminDashboard", id = UrlParameter.Optional }
);
}
стоит отметить, что для регистрации администратора я попытался указать пространство имен явно с помощью:
new {"xx.xx.xx.xx.Admin"}
Но не повезло.
Однако попытка ввести localhost / Admin приводит к тому, что ресурс не найден.