You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
В тестовой и продуктивной средах встречается масса ошибок SerializationException (в среднем 4 для тестовой среды и 20 для продуктива). У нас их ловит на бэкенде свой GlobalExceptionHandler.
Текст ошибки
System.Runtime.Serialization.SerializationException: 'EdmEntityObject' cannot be serialized using the ODataMediaTypeFormatter.
at System.Web.OData.Formatter.ODataMediaTypeFormatter.GetSerializer (System.Type type, System.Object value, Microsoft.OData.Edm.IEdmModel model, System.Web.OData.Formatter.Serialization.ODataSerializerProvider serializerProvider) [0x000ef] in <2e50d258365747bf8e23647205ede093>:0
at System.Web.OData.Formatter.ODataMediaTypeFormatter.WriteToStream (System.Type type, System.Object value, System.IO.Stream writeStream, System.Net.Http.HttpContent content, System.Net.Http.Headers.HttpContentHeaders contentHeaders) [0x00025] in <2e50d258365747bf8e23647205ede093>:0
at System.Web.OData.Formatter.ODataMediaTypeFormatter.WriteToStreamAsync (System.Type type, System.Object value, System.IO.Stream writeStream, System.Net.Http.HttpContent content, System.Net.TransportContext transportContext, System.Threading.CancellationToken cancellationToken) [0x00059] in <2e50d258365747bf8e23647205ede093>:0
--- End of stack trace from previous location where exception was thrown ---
at System.Web.Http.WebHost.HttpControllerHandler.WriteBufferedResponseContentAsync (System.Web.HttpContextBase httpContextBase, System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpResponseMessage response, System.Web.Http.ExceptionHandling.IExceptionLogger exceptionLogger, System.Web.Http.ExceptionHandling.IExceptionHandler exceptionHandler, System.Threading.CancellationToken cancellationToken) [0x000ae] in :0
Шаги воспроизведения
Абсолютно непонятно, как повторить и кто создаёт некорректный payload для сериализации.
Логирование чуть-чуть детализирует ситуацию:
'EdmEntityObject' (IEdmModel type='DataObjectEdmModel') cannot be serialized using the 'CustomODataSerializerProvider'
Но понятнее не становится.
Описание ошибки
В тестовой и продуктивной средах встречается масса ошибок SerializationException (в среднем 4 для тестовой среды и 20 для продуктива). У нас их ловит на бэкенде свой GlobalExceptionHandler.
Текст ошибки
System.Runtime.Serialization.SerializationException: 'EdmEntityObject' cannot be serialized using the ODataMediaTypeFormatter.
at System.Web.OData.Formatter.ODataMediaTypeFormatter.GetSerializer (System.Type type, System.Object value, Microsoft.OData.Edm.IEdmModel model, System.Web.OData.Formatter.Serialization.ODataSerializerProvider serializerProvider) [0x000ef] in <2e50d258365747bf8e23647205ede093>:0
at System.Web.OData.Formatter.ODataMediaTypeFormatter.WriteToStream (System.Type type, System.Object value, System.IO.Stream writeStream, System.Net.Http.HttpContent content, System.Net.Http.Headers.HttpContentHeaders contentHeaders) [0x00025] in <2e50d258365747bf8e23647205ede093>:0
at System.Web.OData.Formatter.ODataMediaTypeFormatter.WriteToStreamAsync (System.Type type, System.Object value, System.IO.Stream writeStream, System.Net.Http.HttpContent content, System.Net.TransportContext transportContext, System.Threading.CancellationToken cancellationToken) [0x00059] in <2e50d258365747bf8e23647205ede093>:0
--- End of stack trace from previous location where exception was thrown ---
at System.Web.Http.WebHost.HttpControllerHandler.WriteBufferedResponseContentAsync (System.Web.HttpContextBase httpContextBase, System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpResponseMessage response, System.Web.Http.ExceptionHandling.IExceptionLogger exceptionLogger, System.Web.Http.ExceptionHandling.IExceptionHandler exceptionHandler, System.Threading.CancellationToken cancellationToken) [0x000ae] in :0
Шаги воспроизведения
Абсолютно непонятно, как повторить и кто создаёт некорректный payload для сериализации.
Конфигурация
Локально: Windows, .net 461, IIS 10 Express
Удалённо: Linux, mono 5.18.0, docker (flexberry/alt.p8-apache2-mono:5.18.0)
Пути решения
Требуется расширенный дебаг.
Исходный код
Исключение прилетает из этого метода:
https://github.com/OData/WebApi/blob/v5.7.0/OData/src/System.Web.OData/OData/Formatter/ODataMediaTypeFormatter.cs#L622
Предлагаю добавить дополнительное логирование в:
https://github.com/Flexberry/NewPlatform.Flexberry.ORM.ODataService/blob/develop/NewPlatform.Flexberry.ORM.ODataService/Formatter/CustomODataSerializerProvider.cs
The text was updated successfully, but these errors were encountered: