Я перенес приложение sitecore 7.2 на sitecore 8.2 с помощью инструмента экспресс-миграции. После миграции перестала работать маршрутизация Web API. Я использую приведенный ниже метод для сопоставления маршрутизации
[UsedImplicitly]
public class ConfigRegister
{
/// <summary>
/// Startup method to bind all configurations for site core pipeline.
/// </summary>
/// <param name="args"></param>
public virtual void Process(PipelineArgs args)
{ RouteConfig.RegisterRoutes(RouteTable.Routes);
}
}
Затем зарегистрируйте его, используя следующий фрагмент кода
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "ControllersApi",
routeTemplate: "WebApi/CustomerPortal/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
Я получаю сообщение об ошибке Маршрут с именем «MS_attributerouteWebApi» уже находится в коллекции маршрутов. Имена маршрутов должны быть уникальными. Имя параметра: имя.
Но когда я комментирую строку
config.MapHttpAttributeRoutes();
Я получаю сообщение об ошибке {"Message":"Произошла ошибка.","ExceptionMessage":"Объект еще не инициализирован. Убедитесь, что HttpConfiguration.EnsureInitialized() вызывается в коде запуска приложения после всего остального кода инициализации .","ExceptionType":"System.InvalidOperationException","StackTrace":" в System.Web.Http.Routing.RouteCollectionRoute.get_SubRoutes()\r\n в System.Web.Http.Routing.RouteCollectionRoute.GetRouteData(String virtualPathRoot, запрос HttpRequestMessage)\r\n в System.Web.Http.WebHost.Routing.HttpWebRoute.GetRouteData(HttpContextBase httpContext)"}
Ваша помощь в решении этой проблемы высоко ценится