我正在使用NetTcp绑定与某些WCF服务通信的项目。当第一次开始了我们采取的其他应用程序做WCF通过调用一个不好的做法,比如下面:WCF错误记录
EntityObject sample = new ServiceProxy().GetEntity();
直到我们意识到WCF是抱着到即使aspx页面已被发送到连接的工作太棒了客户端(我天真地认为会清理任何连接)。虽然连接被阻止导致事情最终放缓,但ELMAH记录了任何错误并向我们发送了完整的堆栈跟踪。为了解决性能问题,我们改为:
using (ServiceProxy proxy = new ServiceProxy())
{
sample = proxy.GetEntity();
}
这使得表现摇滚比较。这种方法的缺点是每当代理收到错误时,ELMAH唯一可以捕捉到的就是现在的通道出现故障。然后,我们必须深入挖掘日志(使用sharedListener设置WCF的)来判断发生了什么,如果是序列化错误,尽管侦听器在客户端和服务器上都设置了,但实际发现它的可能性要低得多。我已经探索了IErrorHandler接口,并且将为它添加对我们的服务的支持,但是我想知道是否有其他方法可以从WCF中获取详细的错误,而不是仅仅说错误,并且没有真正的信息来说明为什么故障。如果它在序列化它可以告诉我们的对象时死亡,这将是特别有益的。为什么它不能序列化。
这看起来和我在找的一模一样。谢谢您的帮助。 – RubyHaus 2009-10-13 20:00:04