。
你好
我有一个WCF,我必须记录该请求和相关的响应。
今天,我似乎收到了请求和响应,但是我没有要关联的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);
}
}
}
您能告诉我是否可以通过这种方式链接请求和响应?
谢谢你的帮助
最佳答案
诊断会在消息中生成一个“ Correlation ActivityID”,并且与请求和响应相关。
此链接包含有关的更多信息,并可以帮助您:
http://www.codeproject.com/Articles/392926/Grouping-application-traces-using-ActivityId
关于ActivityID:
http://www.thejoyofcode.com/Propagating_the_ActivityId_to_a_WCF_service.aspx