我們的一個WCF服務的方法拋出異常,對生產環境:DataContractSerializer.MaxItemsInObjectGraph屬性的含義
The formatter threw an exception while trying to deserialize the message: There was an
error while trying to deserialize parameter http: //our_schema:GetSomeListResult. The InnerException message was 'Maximum number of items that can be serialized or deserialized in an object graph is '65536'. Change the object graph or increase the MaxItemsInObjectGraph quota.
GetSomeList返回對象列表的方法(15個性質 - 整型,枚舉,字符串,DateTime是否)它有大約6k元素。但是,相同的服務配置不會導致我的本地機器和測試環境發生此錯誤。 我知道如何解決這個錯誤:
<behavior name="basicEndpointBehavior">
<dataContractSerializer maxItemsInObjectGraph="2147483647"/>
</behavior>
,但我不明白它的性質。
那麼什麼是序列化/反序列化數組中的對象的實數? List.Count? List.Count *(屬性數量)?如果公式爲List.Count *(屬性數量),對象數量= 6k * 15 = 90k,這大於65536.爲什麼此方法調用本地調用大小相同的數組?
那麼你可以在本地點擊相同的數據而不會出錯?你確定你的配置在本地和生產中是一樣的嗎? –