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
。 你好
我有一个 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