2012-03-22 72 views
2

我有一个非常简单的wcf服务器。当客户使用“操作”合同时,我想将其记录在日志文件中。 我想出了两个解决方案,但我怀疑他们是不错的解决方案,需要专家的一些提示。 我的第一个解决方案: 而不是使用typeof(serverclass)创建主机,我使用serverclass的一个实例。 serverclass有一个事件,我附加一个事件处理程序给它写入日志。 这个解决方案的问题是它需要MULT线程,可重入,多届,每次通话设置...等 我的第二个解决方案格外小心: 使用静态委托内部serverclass,仍然创造与主机typeof运算(serverclass)。这样我可以将日志记录功能分配给静态代理。从wcf服务服务器引发事件

我不觉得这是最好的方式,我真的很感激意见或提示。 谢谢。

+0

你想要日志文件在哪里?在客户端或服务器上? – Jontatas 2012-03-22 16:36:36

回答

2

您可以使用WCF行为扩展来拦截该调用,然后编写日志文件。

有多种方法通过实现各种扩展接口拦截,但消息检查就是其中之一。

看一看here

+0

我同意使用消息检查器。 WCF具有此功能已内置。如果您不介意日志格式,也可以使用WCF的内置消息日志记录:http://msdn.microsoft.com/en-us/library/ms730064.aspx – ChrisNel52 2012-03-22 17:02:46

+0

谢谢。我确信必须有更好的方法。 – tdolphin 2012-03-22 17:45:43

1

你也可以考虑一个AOP方法。 PostSharp是一个很好的平台。免费版本支持进入,退出和错误方面。