в наших проектах 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