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属性,则无效。”你有证据证明这一点吗?消息不多,只有一条。