Я использую инструменты Syncfusion для планирования.Планировщик общается с конечной точкой оддаты.Сервисы odata работают правильно для get, put, delete.Однако планировщик использует пакетную обработку $ для обработки изменений в расписании.Я не могу заставить $ batch правильно маршрутизировать и / или обрабатывать.
По умолчанию планировщик выполняет вызов редактирования так:
https://localhost:44341/odata/Events/$batch
Вот мои карты маршрутов:
app.UseMvc(builder =>
{
builder.Select().Expand().Filter().OrderBy().MaxTop(100).Count();
builder.MapODataServiceRoute("odata", "odata", GetEdmModel());
builder.MapODataServiceRoute("odataBatch", "odata/{controller}", GetEdmModel(), new DefaultODataBatchHandler());
});
Итак, я получаю (200) POST в своих заголовках, но получаю 404. Я очень смущен тем, что происходит.Кажется, что контроллер не обрабатывает пакетные команды.В частности, команды POST и PATCH в теле полезной нагрузки.Заранее благодарю за помощь.
В инструментах разработчика (CHROME) вот что я вижу:
RESPONSE TAB
- batchresponse_e2f02110-21b6-4559-924e-1e2b3376fb3c Тип содержимого: составной / смешанный;border = changesetresponse_4799e072-83d9-4b7d-9409-23eceb98736b
- changesetresponse_4799e072-83d9-4b7d-9409-23eceb98736b Тип содержимого: application / http Content-Transfer-Encoding: двоичный идентификатор содержимого: 0
HTTP / 1.1 404 Не найдено
- changesetresponse_4799e072-83d9-4b7d-9409-23eceb98736b-- --batchresponse_e2f02110-21b6-4559-924e-1e2b3376fb3c -
HEADERS1023 * Общие
URL-адрес запроса: https://localhost:44341/odata/Events/$batch
Метод запроса: POST
Код состояния: 200
Удаленный адрес: [::1]: 44341
Политика реферера: no-referer-when-downgrade
Заголовок ответа
access-control-allow-origin: https://localhost:44308
content-type: multipart / mixed; border = batchresponse_e2f02110-21b6-4559-924e-1e2b3376fb3c
дата: ср, 12 июня 2019 21:35:08 GMT
версия данных: 4.0
сервер: Kestrel
статус: 200
x-powered-by: ASP.NET
x-sourcefiles: =? UTF-8? B? QzpcVlMyMDE3? IFByb2plY3RzXFRIUFRPZGF0YVxPZGF0YUxlYXJuaW5nXG9kYXRhXEV2ZW50c1wkYmF0Y2g =
1056 * Request Header 1058 * Предварительные заголовки показаны 1060 * Accept: приложения / JSON, текст / JavaScript,
/ ;q = 0,01
Тип содержимого: составной / смешанный;charset = UTF-8; border = batch_80a929c5-2918-463e-ba41-aa8c981ffb3b
DNT: 1
Происхождение: https://localhost:44308
Предпочтение: возврат = представление
Referer: https://localhost:44308/admin/home/scheduler
Пользователь-агент: Mozilla / 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 74.0.3729.169 Safari / 537.36
Запрос полезной нагрузки
- batch_80a929c5-2918-463e-ba41-aa8c981ffb3b Content-Type: multipart / mixed;border = changeset_f9c22042-3196-4452-a1c6-2fd55993e2a2
- changeset_f9c22042-3196-4452-a1c6-2fd55993e2a2 Тип содержимого: application / http Content-Transfer-Encoding: binary
POSTHTTP / 1.1 Accept: application / json, text / javascript, / ;q = 0.01 Content-Id: 0 Content-Type: application / json;charset = utf-8
{"Id": 2, "Subject": "Joe's Pizza Shack", "StartTime": "2019-06-09T02: 00: 00.000Z", "EndTime": "2019-06-09T07: 30: 00.000Z "," StartTimezone ":" America / New_York "," EndTimezone ":" America / New_York "," Location ":" 123 Somewhere, Longwood, FL 32750 "," Description ":"asdfadfada", "IsAllDay" ложь "IsRecurring": правда, "RecurrenceID": 1, "RecurrenceRule": "FREQ = ЕЖЕНЕДЕЛЬНИК; BYDAY = SA, Interval = 1;", "RecurrenceException": нулевой, "IsReadOnly": false, "IsBlock": false, "IsActive": true, "IsDisabled": false, "VenueId": 1, "Guid": "4a0d1282-678b-b4b8-e84a-0cbb011887d4"}
--changeset_f9c22042-3196-4452-a1c6-2fd55993e2a2 Тип содержимого: application / http Content-Transfer-Encoding: двоичный
PATCH https://localhost:44341/odata/Events(1) HTTP / 1.1 Принимать: application / json, text / javascript, / ;q = 0,01 Content-Id: 1 Content-Type: application / json;charset = utf-8
{"Id": 1, "Subject": "Пицца" Джо "," StartTime ":" 2019-06-09T02: 00: 00.000Z "," EndTime ":" 2019-06-09T07: 30:00.000Z "," StartTimezone ":" America / New_York "," EndTimezone ":" America / New_York "," Location ":" 123 Somewhere, Longwood, FL 32750 "," Description ":" adgadgadfafdas "," IsAllDay ":ложь, "IsRecurring": правда, "RecurrenceID": нулевой, "RecurrenceRule": "FREQ = ЕЖЕНЕДЕЛЬНИК; BYDAY = SA, Interval = 1;", "RecurrenceException": "20190609T020000Z", "IsReadOnly" ложь "IsBlock": false, "IsActive": true, "IsDisabled": false, "VenueId": 1}
- changeset_f9c22042-3196-4452-a1c6-2fd55993e2a2-- --batch_80a929c5-2918-463e-ba41-aa8c981ffb3b -