如何跟踪WCF序列化问题/异常

Fab*_*ano 9 .net c# wcf wcf-faults wcf-serialization

我偶尔会遇到在WCF序列化期间抛出应用程序异常的问题(从我的OperationContract返回DataContract之后).我得到的唯一(而且意义不大)消息是

System.ServiceModel.CommunicationException:基础连接已关闭:连接意外关闭.

没有任何洞察内部异常,这使得很难找到序列化过程中导致错误的原因.

有人知道如何跟踪,记录和调试这些异常的好方法吗?或者甚至可以更好地捕获异常,处理它们并将定义的FaulMessage发送给客户端?

谢谢

Ste*_*gli 5

如果您按照以下方式配置服务行为,则应该获得内部异常:

<system.serviceModel>
     <behaviors>
         <serviceBehaviors>
               <behavior name="YourServiceBehaviour">
                   ...
                   <serviceDebug includeExceptionDetailInFaults="true" />
                   ...
               </behavior>
         </serviceBehaviors>
     </behaviors>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)

此外,您可以启用跟踪.现在没找到好文章,但也许​​这会让你开始:

http://developers.de/blogs/damir_dobric/archive/2009/03/24/using-of-wcf-trace.aspx

  • 感谢您的回复.includeExceptionDetailInFaults属性仅适用于OperationContract边界内发生的异常.序列化期间的问题发生在这些边界之外.您的第二个提案可能是记录(但不处理)这些问题的解决方案.我会深入研究一下. (4认同)