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

时间:2010-05-06 08:55:16

标签: c# .net wcf wcf-faults wcf-serialization

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

  

System.ServiceModel.CommunicationException   :基础连接是   已关闭:连接已关闭   出乎意料。

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

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

谢谢

2 个答案:

答案 0 :(得分:5)

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

<system.serviceModel>
     <behaviors>
         <serviceBehaviors>
               <behavior name="YourServiceBehaviour">
                   ...
                   <serviceDebug includeExceptionDetailInFaults="true" />
                   ...
               </behavior>
         </serviceBehaviors>
     </behaviors>
</system.serviceModel>

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

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

答案 1 :(得分:0)

我遇到了这个问题,这是一个序列化问题...有时我发送的DataTable没有任何列,在这种情况下,通道刚刚关闭而没有任何错误或痕迹。