我偶尔会遇到在WCF序列化期间抛出应用程序异常的问题(从我的OperationContract返回DataContract之后)。我得到的唯一(也是没有意义的)消息是
System.ServiceModel.CommunicationException :基础连接是 已关闭:连接已关闭 出乎意料。
对内部异常没有任何了解,这使得很难找到序列化过程中导致错误的原因。
有人知道如何跟踪,记录和调试这些异常的好方法吗?或者甚至可以更好地捕获异常,处理它们并将定义的FaulMessage发送给客户端?
谢谢
答案 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没有任何列,在这种情况下,通道刚刚关闭而没有任何错误或痕迹。