У меня проблема маршрутизации с контроллерами MVC и WebAPI.
Ошибка:
Обнаружено несколько типов, соответствующих контроллеру с именем 'Log'.Это может произойти, если маршрут, обслуживающий этот запрос ('api / {controller} / {action} / {id}'), обнаружил несколько контроллеров, определенных с одинаковым именем, но с разными пространствами имен, что не поддерживается.Запрос 'Log' обнаружил следующие подходящие контроллеры: MyNamespace.Controllers.LogController MyNamespace.Controllers.WebAPI.LogController
Моя маршрутизация проста:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
У меня естьпопытался добавить дополнительный маршрут для WebAPI, например:
routes.MapHttpRoute(
name: "API",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Наряду с добавлением пространства имен для маршрута MVC:
namespaces: new[] { "MyNamespace.Controllers" }
Но я все еще получаю ту же ошибку.Я не вижу способа указать пространство имен для маршрута WebAPI.
Существует хорошо поддержанный дубликат , но это конкретно касается контроллеров MVC.Ответы говорят о добавлении пространства имен, как указано выше, что здесь не помогло.В моем случае маршрутизация на контроллер MVC работает нормально, и проблема возникает только с контроллером WebAPI.
Странно то, что все остальные мои контроллеры WebAPI имеют то же имя, что и контроллеры MVC, но этоединственный, где я сталкиваюсь с ошибкой.