json.net Formatter перестает работать правильно - PullRequest
0 голосов
/ 10 октября 2019

в наших проектах WebApi мы сталкиваемся с очень странной проблемой.

Ситуация : Мы запускаем сервер Katana OWIN с некоторыми контроллерами веб-API и настраиваемым формататором protobuf. JsonFormatter по умолчанию получил пользовательский TraceWriter для ведения журнала.

config.Formatters.JsonFormatter.SerializerSettings.TraceWriter = new JsonTraceWriter(logger);

Теперь все работает хорошо на некоторое время, и мы получили некоторый вывод журнала из TraceWriter. Но после некоторых действий REST от подключенных клиентов JsonFormatter начинает делать сумасшедшие вещи, такие как:

  • Десериализация только 1 из 3 свойств из определенных объектов
  • Возврат нулевых значений в сложные свойства конкретных объектов
  • Другие объекты работают нормально
  • Больше нет журналов TraceWriter

После перезапуска веб-службы проблема исчезает на некоторое время, а затем неожиданно возвращается снова. Единственное, что мы можем четко сказать, это то, что все объекты / действия, обрабатываемые форматером protobuf, работают нормально.

У кого-нибудь была проблема с симларом с JsonMediaTypeFormatter?

Кто-нибудь знает способсоблюдать форматтер? У меня такое чувство, что в какой-то момент форматер умирает. Но это не объясняет, почему некоторые объекты по-прежнему сериализуются / десериализуются правильно.

Любые подсказки будут хорошими.

Используемые нюансы:

Microsoft. AspNet.WebApi 5.2.3 / 5.2.7

Newtonsoft.Json 10.0.3 / 12.0.2

...