C# 如何跟踪WCF序列化问题/异常
我偶尔会遇到这样的问题,即在WCF序列化期间(从OperationContract返回DataContract之后)引发应用程序异常。我得到的唯一(也不那么有意义)信息是 System.ServiceModel.CommunicationException :基础连接为 关闭:连接已关闭 想不到 没有任何对内部异常的洞察,这使得在序列化过程中很难找出导致错误的原因 有人知道如何跟踪、记录和调试这些异常吗?或者更好的是,我可以捕获异常,处理它们并向客户端发送定义的错误消息吗C# 如何跟踪WCF序列化问题/异常,c#,.net,wcf,wcf-faults,wcf-serialization,C#,.net,Wcf,Wcf Faults,Wcf Serialization,我偶尔会遇到这样的问题,即在WCF序列化期间(从OperationContract返回DataContract之后)引发应用程序异常。我得到的唯一(也不那么有意义)信息是 System.ServiceModel.CommunicationException :基础连接为 关闭:连接已关闭 想不到 没有任何对内部异常的洞察,这使得在序列化过程中很难找出导致错误的原因 有人知道如何跟踪、记录和调试这些异常吗?或者更好的是,我可以捕获异常,处理它们并向客户端发送定义的错误消息吗 谢谢如果您这样配置服务
谢谢如果您这样配置服务行为,您应该会得到内部异常:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="YourServiceBehaviour">
...
<serviceDebug includeExceptionDetailInFaults="true" />
...
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
...
...
此外,还可以启用跟踪。现在没有找到一篇好文章,但这可能会让您开始:
我遇到了这个问题,这是一个序列化问题。。。有时我发送的数据表没有任何列,在这种情况下,通道刚刚关闭,没有任何错误或跟踪。谢谢您的回复。includeExceptionDetailInFaults属性仅适用于发生在OperationContract边界内的异常。序列化期间的问题发生在这些边界之外。您的第二个建议可能是记录(但不是处理)这些问题的解决方案。我会更深入地了解它。非常感谢你的链接。日志记录帮助我找到了问题。