Мы используем CTP в октябре 2011 года в библиотеке Microsoft OData. В течение некоторого времени, включая предыдущие версии, мы сталкиваемся с прерывистым исключением ссылочной ссылки на сериализацию модели из глубины внутри библиотеки.OData Library Edm.Internal.Cache null Исключение для ссылки
System.NullReferenceException
на Microsoft.Data.Edm.Internal.Cache
2.GetValue(TContainer container, Func
2 вычислительном, Func`2 onCycle)на Microsoft.Data.Edm.Csdl.Internal.CsdlSemantics. CsdlSemanticsStructuredTypeDefinition.FindProperty (String имя)
в Microsoft.Data.OData.ValidationUtils.ValidatePropertyDefined (String ИмениСвойства, IEdmStructuredType owningStructuredType)
на Microsoft.Data.OData.Json.ODataJsonWriterUtils.WriteProperty (JsonWriter jsonWriter, IODataUrlResolver urlResolver, IEdmModel модель, ODataProperty свойство, IEdmStructuredType owningType, Boolean allowNamedStreamProperty, Uri baseUriForNamedStreamProperty, ODataVersion версия, DuplicatePropertyNamesChecker duplicatePropertyNamesChecker, ProjectedPropertiesAnnotation projectedProperties, булева writingResponse, ODataWriterBehavior writerBehavior)
на Microsoft.D ata.OData.Json.ODataJsonWriterUtils.WriteProperties (JsonWriter jsonWriter, IODataUrlResolver urlResolver, IEdmModel модели, IEdmStructuredType owningType, IEnumerable`1 свойства, булевы allowNamedStreamProperty, Ури baseUriForNamedStreamProperty, ODataVersion версия, DuplicatePropertyNamesChecker duplicatePropertyNamesChecker, ProjectedPropertiesAnnotation projectedProperties, булева writingResponse , ODataWriterBehavior writerBehavior)
на Microsoft.Data.OData.Json.ODataJsonWriter.EndEntry (ODataEntry вход)
в Microsoft.Data.OData.ODataWriterCore.b__18()
в Microsoft.Data.OData.ODataWriterCore.InterceptException (Action действия)
в Microsoft.Data.OData.ODataWriterCore.WriteEndImplementation()
на Microsoft.Data.OData.ODataWriterCore.WriteEnd()
Мы реализовали обходной путь (явно предварительно инициализации ЭДМ по телефону IEdmModel.Validate (...)), что первоначально казалось, предотвратить сбой, но это не всегда эффективно.
Кто-нибудь еще видит эту проблему, и если да, то есть ли эффективное решение?
Спасибо,
Eric
Возможно, что это происходит при одновременных запросах. Несмотря на то, что мы видим это при загрузке одной страницы на изолированном сервере, загрузка страницы делает одновременные запросы AJAX. Проблема не часто воспроизводится, поэтому может быть сложно сказать наверняка, но мы можем попытаться разместить метаданные в менеджере жизненного цикла на протяжении каждого потока и посмотреть, как это происходит. – evoskuil