Пакет OData веб-API ASP.NET, возвращающий HTTP 404

Я начинаю работу с ASP.NET Web API v2 и OData (v3).
У меня есть клиент, сделанный с помощью JayData v 1.3.6.

Контекст клиента

onlinedb = new $todo.Types.ToDoContext({
    name: 'oData',
    oDataServiceHost: 'http://localhost:49375/odata'
});

Маршруты серверов

public static void Register(HttpConfiguration config)
{
    // Web API configuration and services
    ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
    builder.ContainerName = "WebAPIDataCollectorContext";
    builder.EntitySet<TodoItem>("Todo");
    config.Routes.MapODataRoute("odata", "odata", builder.GetEdmModel(), new DefaultODataBatchHandler(GlobalConfiguration.DefaultServer));

    // Web API routes
    config.MapHttpAttributeRoutes();

    config.Routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/{controller}/{id}",
        defaults: new { id = RouteParameter.Optional }
    );

    config.EnableCors();
}

Запрос
ПАРАМЕТРЫ /odata/$batch HTTP/1.1 (из Fiddler)

Ответ

{"Message":"No HTTP resource was found that matches the request URI 'http://localhost:49375/odata/$batch'.","MessageDetail":"No route providing a controller name was found to match request URI 'http://localhost:49375/odata/$batch'"}

Комментарии

http://localhost:49375/odata/Todo (GET operation) is working fine.

Вопрос: почему пакетная операция не работает?

Спасибо!


person Gustavo    schedule 25.08.2014    source источник


Ответы (1)


Пакетные операции не поддерживаются OData ASP.NET WebAPI, но вы можете настроить его, следуя этой статье — Представление пакетной поддержки в Web API и OData Web API

person Robesz    schedule 01.09.2014
comment
Я думал, что эта строка включает пакет: config.Routes.MapODataRoute(odata, odata, builder.GetEdmModel(), new DefaultODataBatchHandler(GlobalConfiguration.DefaultServer)); Спасибо за ссылку. - person Gustavo; 24.10.2014