为 WCF 服务调用创建包装器的最佳实践是什么?我认为有必要在同一个地方监视所有呼叫,我正在考虑使用这种代码,这是正确的想法吗?
RetType t = ServiceExecutionContext<IServiceChanel>.Execute(s=>s.GetServiceMethod());
您在企业应用程序中使用哪种包装器?
非常感谢!
WCF 有一个模型,允许您在服务调用链中。如果您尝试做的只是一些日志记录(如果您在配置文件中打开诊断,WCF 已经非常擅长做)以及围绕您的服务的常见事情,我会使用它而不是尝试包装每个服务调用来电。
这是一篇关于如何为 WCF 服务创建自定义行为的优秀 MSDN 文章。
如果需要,请编写自己的Message Inspector。
WCF 还内置了消息日志记录。默认情况下,您可以使用 System.Diagnostics.XmlWriterTraceListener 轻松地将日志记录到文件中,但是如果您需要在其他地方(例如数据库)写入日志,您可以编写自己的跟踪侦听器。
我会推荐这种方法而不是消息检查器......消息检查器很容易写不正确并且在不知道你在做什么的情况下损害性能。