超出了WCF maxItemsInObjectGraph - 如何从svclog中看到哪些对象导致了问题

时间:2016-10-12 13:15:35

标签: c# wcf wcf-configuration

我看到了错误:

  

可以序列化或反序列化的最大项目数   对象图是' 65536'更改对象图或增加   MaxItemsInObjectGraph quota

我理解如何通过

在服务器和客户端配置中解决这个问题
<dataContractSerializer maxItemsInObjectGraph="262144"/>

<behaviour>元素中。

但我真正关心的是了解哪些物体正在运输而导致问题。我已将MaxItemsInObjectGraph配额提升至262144)并且仍然看到超出新值的错误。这引起了我的注意,我希望在记录哪些对象确实导致如此大的图形。

我已将svclog日志记录设置为:

<system.diagnostics>
        <sources>
            <source name="System.ServiceModel"
                            switchValue="Information, ActivityTracing"
                            propagateActivity="true">
                <listeners>
                    <add name="traceListener2"
                            type="System.Diagnostics.XmlWriterTraceListener"
                            initializeData= ".\TracesGMUI.svclog" />
                </listeners>
            </source>
        </sources>
    </system.diagnostics>

但是查看带有服务跟踪视图的loggs并不是(据我所知),我可以看到传输了什么对象并获得了字节或对象图形大小的处理。

任何想法如何获取此信息?真正意义上的内容与您在内存转储中看到的内容类似,即对象类的指示,对象大小(以字节为单位)和对象图大小

0 个答案:

没有答案