Wcf - 使用 System.Diagnostics 获取请求和响应

Wcf - Get Request and Response with System.Diagnostics

。 你好

我有一个 WCF,我必须记录请求和关联的响应。

今天好像收到了request和response,但是没有id可以关联

在 .config 中使用以下配置:

  <system.diagnostics>
    <sources>
      <source name="System.ServiceModel.MessageLogging">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
    </sources>
    <sharedListeners>
    <add name="xml" type="Ctx_Host.WebTraceListener, Ctx_Host" />
    </sharedListeners>
  </system.diagnostics>
  <system.serviceModel>
    <diagnostics>
      <messageLogging
          logEntireMessage="true"
          logMalformedMessages="false"
          logMessagesAtServiceLevel="true"
          logMessagesAtTransportLevel="true"
          maxMessagesToLog="300000"
          maxSizeOfMessageToLog="200000"/>
    </diagnostics>
  </system.serviceModel>

而 .cs 代码是:

public class WebTraceListener : TraceListener
{
    public override void Write(string message)
    {
        using (var sw = new StreamWriter(@"F:\wcf\log.csv", true))
        {
            sw.WriteLine(message);
        }
    }


    public override void WriteLine(string message)
    {
        using (var sw = new StreamWriter(@"F:\wcf\log.csv", true))
        {
            sw.WriteLine(message);
        }
    }
}

你能告诉我是否可以link这种或另一种方式请求和响应吗?

感谢您的帮助

诊断在消息中生成一个 "Correlation ActivityID",它与请求和响应的关系相同。

此 link 有更多信息可以帮助您:

http://www.codeproject.com/Articles/392926/Grouping-application-traces-using-ActivityId

关于 ActivityID:

http://www.thejoyofcode.com/Propagating_the_ActivityId_to_a_WCF_service.aspx