2009-06-03 122 views
2

为WCF服务调用创建包装的最佳做法是什么?我认为这是必要的 监视在同一地点的所有电话,我想使用这种类型的代码,这是正确的想法?WCF服务调用包装

RetType t = ServiceExecutionContext<IServiceChanel>.Execute(s=>s.GetServiceMethod()); 


您在企业应用程序中使用了什么样的包装?
非常感谢!

+2

我想大多数人根本不使用包装。请详细说明你为什么要使用它们,以及为什么你认为每个人都使用它们。 – 2009-06-03 12:54:50

+0

我不认为每个人都使用它们,但我认为有必要在同一个地方进行各种服务异常处理和服务调用日志记录......是不是? – 2009-06-03 12:57:43

回答

6

WCF有一个模型,允许你在服务调用链中。如果你所要做的只是一些日志记录(如果你在配置文件中打开诊断功能,那么WCF已经非常擅长)以及像你的服务一样的常见事情,我会使用它而不是试图包装每个服务调用调用。

Here is a good MSDN article关于如何为WCF服务创建自定义行为。

1

如果需要,请自行编写Message Inspector

WCF也有message logging内建。默认情况下,您可以使用System.Diagnostics.XmlWriterTraceListener轻松将其记录到文件中,但是如果您需要在其他位置(例如数据库)写入日志,则可以编写自己的trace listener

我会推荐这种方法通过消息检查...消息检查员太容易写错误,伤害性能不知道你在做什么。