我們正在使用Microsoft OData庫的2011年10月CTP。一段時間以來,包括以前的版本,我們一直在從庫的內部深入模型序列化時遇到間歇性的空引用異常。OData庫Edm.Internal.Cache空引用異常
System.NullReferenceException
在Microsoft.Data.Edm.Internal.Cache
2.GetValue(TContainer container, Func
2計算,Func`2 onCycle)在 Microsoft.Data.Edm.Csdl.Internal.CsdlSemantics。 CsdlSemanticsStructuredTypeDefinition.FindProperty(字符串 名)
在Microsoft.Data.OData.ValidationUtils.ValidatePropertyDefined(字符串 propertyName的,IEdmStructuredType owningStructuredType)
在 Microsoft.Data.OData.Json.ODataJsonWriterUtils.WriteProperty(JsonWriter jsonWriter,IODataUrlResolver urlResolver,IEdmModel模型, ODataProperty財產,IEdmStructuredType owningType,布爾 allowNamedStreamProperty,烏里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(動作 動作)
在Microsoft.Data.OData.ODataWriterCore.WriteEndImplementation()
在Microsoft.Data.OData.ODataWriterCore.WriteEnd()
我們(通過調用IEdmModel.Validate(...)的EDM明確預初始化)實施的變通方法,起初似乎防止失敗,但這不是一貫有效的。
是否有其他人看到這個問題,如果有的話是否有一個有效的解決方法/解決方案?
感謝,
埃裏克
這可能是發生在併發請求上。儘管我們在孤立服務器上的單個頁面上看到它,但頁面加載會發出併發的AJAX請求。這個問題並不經常被複制,因此可能很難說 - 但我們可以嘗試將元數據放在每個線程生命週期管理器上,並瞭解它如何保持。 – evoskuil 2012-03-07 00:28:27