Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么不是';是否正在记录我的无效WCF消息?_C#_Wcf_Serialization - Fatal编程技术网

C# 为什么不是';是否正在记录我的无效WCF消息?

C# 为什么不是';是否正在记录我的无效WCF消息?,c#,wcf,serialization,C#,Wcf,Serialization,我有一个使用[DataContract]类型与WCF服务通信的WCF客户端,我收到一个序列化错误: 格式化程序在尝试反序列化消息时引发异常:出现错误 尝试反序列化参数时。 InnerException消息是“在中找不到引用id为“i3”的反序列化对象” 溪流。有关更多详细信息,请参阅InnerException 通常情况下,我只需启动跟踪并查看到底发生了什么,但在这种情况下,我无法在日志中显示有问题的(响应)消息 我的配置如下所示: <system.serviceModel>

我有一个使用
[DataContract]
类型与WCF服务通信的WCF客户端,我收到一个序列化错误:

格式化程序在尝试反序列化消息时引发异常:出现错误 尝试反序列化参数时。 InnerException消息是“在中找不到引用id为“i3”的反序列化对象” 溪流。有关更多详细信息,请参阅InnerException

通常情况下,我只需启动跟踪并查看到底发生了什么,但在这种情况下,我无法在日志中显示有问题的(响应)消息

我的配置如下所示:

<system.serviceModel>
    ... (more stuff)
    <diagnostics>
        <messageLogging logEntireMessage="true" logMalformedMessages="true"
        logMessagesAtServiceLevel="false" logMessagesAtTransportLevel="true"
        maxMessagesToLog="10000" maxSizeOfMessageToLog="81920000" />
    </diagnostics>
</system.serviceModel>
<system.diagnostics>
    <trace autoflush="true" />
    <sources>
        <source name="System.ServiceModel" switchValue="Information, ActivityTracing"
          propagateActivity="true">
            <listeners>
                <add name="wcf_listener" />
            </listeners>
        </source>
        <source name="System.ServiceModel.MessageLogging">
            <listeners>
                <add name="wcf_listener" />
            </listeners>
        </source>
    </sources>
    <sharedListeners>
        <add name="wcf_listener" initializeData="tracelog.svclog"
          type="System.Diagnostics.XmlWriterTraceListener" />
    </sharedListeners>
</system.diagnostics>

... (更多内容)

在生成的日志文件中,我记录了出站消息,然后记录了异常。我从未看到收到的消息。我做错了什么?

问题似乎与服务和客户端之间的数据淹没有关


请参阅我的帖子

尝试在DataMember属性中指定'Order'参数。如果,由于某种原因,元素在序列化/反序列化过程中被混淆,这应该可以解决它。例如:
[DataMember(Order=1)]公共字符串Something{get;set;}
可能会有帮助。我不想解决反序列化错误(事实上,它已经解决了…),我想解决日志记录问题。您是否尝试将
开关值
更改为
“All”
,然后查看是否记录了消息?我没有。我不知道这是否会有帮助。switchValue对消息日志记录源没有影响:“源的switchValue属性仅对跟踪有效。如果按如下所示为System.ServiceModel.MessageLogging跟踪源指定switchValue属性,则无效。”你有证据证明这一点吗?消息不多,只有一条。