从wcf服务器提升事件

时间:2012-03-22 16:32:14

标签: c# wcf

我有一个非常简单的wcf服务器。当客户使用"操作"合同,我想在日志文件中记录。 我想出了两个解决方案,但我怀疑它们是好的解决方案,需要专家提供一些提示。 我的第一个解答: 而不是使用typeof(serverclass)创建主机,我使用serverclass的实例。 serverclass有一个事件,我附加一个事件处理程序,写入日志。 这个解决方案的问题是需要额外注意多线程,可重入,多会话,每次呼叫设置......等等。 第二个解决方案: 在serverclass中使用静态委托,仍然使用typeof(serverclass)创建主机。这样我就可以将日志记录功能分配给静态委托。

我觉得这不是最好的方式,我非常感谢您的评论或提示。 谢谢。

2 个答案:

答案 0 :(得分:2)

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

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

看看here

答案 1 :(得分:1)

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