【问题标题】:WCF request-response logging via custom Trace Listener at one go一次通过自定义跟踪侦听器进行 WCF 请求-响应日志记录
【发布时间】:2015-04-19 20:15:45
【问题描述】:

在我的 WCF 客户端应用程序中;

  • 我正在尝试将请求和响应消息记录到单个数据库中 记录。因此,我需要匹配请求和响应消息。
  • 我想使用跟踪侦听器,因为它是一个开箱即用的功能,并且想通过 log4net 登录,但是我在自定义侦听器中只能收到消息字符串。
  • 我对 WCF 服务的调用是异步且并行的。

有没有办法在 Trace Listener 级别匹配异步请求和响应?

【问题讨论】:

  • “消息字符串”是什么意思?
  • SOAP xml 消息。

标签: c# asp.net wcf logging log4net


【解决方案1】:

最终使用了 IClientMessageInspector,因为我找不到在 Trace Listener 级别执行此操作的方法。

使用标头中的 ID 将请求与响应关联起来。

public object BeforeSendRequest(ref Message request, IClientChannel channel)
{            
        var key = request.Headers.MessageId.ToString();

        //Do stuff

        return null;
}
public void AfterReceiveReply(ref Message reply, object correlationState)
{            
        var key = reply.Headers.RelatesTo.ToString();            

        //Do stuff
}

【讨论】:

    猜你喜欢
    • 2016-05-12
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    • 2011-04-02
    • 2019-10-02
    相关资源
    最近更新 更多