Я пытался получить WebApi
работы с Sitecore 7,5 (я был в состоянии получить тот же код, работающий с 7.2) я оставил в конфигурации ссылка на MVC 5.1
и Я получаю следующее исключение при попытке получить доступ к маршрут, проложенный с атрибутом:MVC инструментарий и атрибут WebAPI маршрутизации для Sitecore 7,5
[RoutePrefix("test/api/Other")]
[Route("{action=Get}")]
public class OtherController : ApiController
{
[HttpGet]
public string GetId()
{
return "test";
}
}
сообщение: «произошла ошибка.», ExceptionMessage: «Вал ue не может быть null. Имя параметра: ключ "ExceptionType: "System.ArgumentNullException", StackTrace:" в System.Collections.Generic.Dictionary
2.FindEntry(TKey key) at System.Collections.Generic.Dictionary
2.TryGetValue (ключ TKey, TValue & значение) в Sitecore.Services.Infrastructure.Web. Http.Dispatcher.NamespaceHttpControllerSelector.SelectController (HttpRequestMessage запрос) в System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsyncCore (HttpRequestMessage запроса, CancellationToken CancellationToken) при System.Web.Http.Dispatcher.HttpControllerDispatcher.d__0.MoveNext() "
Код, который я имею в запуске приложения заключается в следующем:
protected void Application_Start(object sender, EventArgs e)
{
GlobalConfiguration.Configure(ConfigureRoutes);
}
public static void ConfigureRoutes(HttpConfiguration config)
{
GlobalConfiguration.Configuration.MapHttpAttributeRoutes();
GlobalConfiguration.Configuration.Formatters.Clear();
GlobalConfiguration.Configuration.Formatters.Add(new JsonMediaTypeFormatter());
}
любая помощь будет оценена ....
Вы добавили префикс маршрута («test/api» в этом случае) к настройке IgnoreUrlPrefixes в Sitecore? – PizzaTheHut
Да, я только что попробовал добавить префикс маршрута к IngnoreUrlPrefix, и он все еще не работает ... Самое забавное, что тот же код работает в чистом 7.2 экземпляре, я думаю, что новый DI Sitecore. Services.Infrastructure.Web.Http.Dispatcher.NamespaceHttpControllerSelector.SelectController получает ошибку ссылки объекта – Stelio
Я думаю, что проблема заключается в маршрутизации атрибута, где происходит получение и ссылка на объект, единственный способ заставить его работать, не использовать маршрутизацию атрибутов, а классическую маршрутизацию, я говорю об этом в этом post: http://sitecorecommerce.wordpress.com/2014/11/30/webapi-attribute-routing-is-not-working-with-sitecore-7-5/ – Stelio