如何在 WCF 跟踪中查看 SOAP 请求和响应
How to see SOAP Request and Response in WCF Tracing
我启用了 SwitchValue = All,还有 Activity 和 Information。
还启用了消息。
仍然不走运,我无法看到 soap 请求和响应。在某些情况下,我确实看到了异常或消息。
我想查看 "All inputs" 值,这是 soap 请求。还有 SOAP 响应。我错过了什么?
这是我在我的网络配置中使用的:
将此或其变体添加到 system.servicemodel 节点:
<diagnostics wmiProviderEnabled="true">
<messageLogging
logEntireMessage="true"
logMalformedMessages="true"
logMessagesAtServiceLevel="true"
logMessagesAtTransportLevel="true"
maxSizeOfMessageToLog="102400000"
maxMessagesToLog="10000" />
</diagnostics>
然后添加这个节点(你不必使用不需要的错误日志记录部分):
<system.diagnostics>
<trace autoflush="true" />
<sources>
<source name="DefaultSource" switchName="DefaultSwitch">
<listeners>
<add name="FileLog"/>
</listeners>
</source>
<source propagateActivity="true" name="System.ServiceModel" switchValue="Warning">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="ServiceModelTraceListener">
<filter type="" />
</add>
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging" switchValue="Warning, ActivityTracing">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="ServiceModelMessageLoggingListener">
<filter type="" />
</add>
</listeners>
</source>
</sources>
<switches>
<add name="DefaultSwitch" value="Information" />
</switches>
<sharedListeners>
<add initializeData="C:\logs\TraceLogs\Web_tracelog_messages.svclog"
type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp">
<filter type="" />
</add>
<add initializeData="C:\logs\TraceLogs\Web_tracelog_errors.svclog"
type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
name="ServiceModelTraceListener" traceOutputOptions="Timestamp">
<filter type="" />
</add>
<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="something.web"/>
</sharedListeners>
</system.diagnostics>
尝试在web.config中添加以下配置。
<system.diagnostics>
<sources>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add type="System.Diagnostics.XmlWriterTraceListener" name="xmlLog" initializeData="myLogs.svclog"/>
</listeners>
</source>
</sources>
</system.diagnostics>
<system.serviceModel>
<diagnostics>
<messageLogging logEntireMessage="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="false" />
</diagnostics>
</system.serviceModel>
如果问题仍然存在,请随时告诉我。
我启用了 SwitchValue = All,还有 Activity 和 Information。
还启用了消息。
仍然不走运,我无法看到 soap 请求和响应。在某些情况下,我确实看到了异常或消息。
我想查看 "All inputs" 值,这是 soap 请求。还有 SOAP 响应。我错过了什么?
这是我在我的网络配置中使用的:
将此或其变体添加到 system.servicemodel 节点:
<diagnostics wmiProviderEnabled="true">
<messageLogging
logEntireMessage="true"
logMalformedMessages="true"
logMessagesAtServiceLevel="true"
logMessagesAtTransportLevel="true"
maxSizeOfMessageToLog="102400000"
maxMessagesToLog="10000" />
</diagnostics>
然后添加这个节点(你不必使用不需要的错误日志记录部分):
<system.diagnostics>
<trace autoflush="true" />
<sources>
<source name="DefaultSource" switchName="DefaultSwitch">
<listeners>
<add name="FileLog"/>
</listeners>
</source>
<source propagateActivity="true" name="System.ServiceModel" switchValue="Warning">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="ServiceModelTraceListener">
<filter type="" />
</add>
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging" switchValue="Warning, ActivityTracing">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="ServiceModelMessageLoggingListener">
<filter type="" />
</add>
</listeners>
</source>
</sources>
<switches>
<add name="DefaultSwitch" value="Information" />
</switches>
<sharedListeners>
<add initializeData="C:\logs\TraceLogs\Web_tracelog_messages.svclog"
type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp">
<filter type="" />
</add>
<add initializeData="C:\logs\TraceLogs\Web_tracelog_errors.svclog"
type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
name="ServiceModelTraceListener" traceOutputOptions="Timestamp">
<filter type="" />
</add>
<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="something.web"/>
</sharedListeners>
</system.diagnostics>
尝试在web.config中添加以下配置。
<system.diagnostics>
<sources>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add type="System.Diagnostics.XmlWriterTraceListener" name="xmlLog" initializeData="myLogs.svclog"/>
</listeners>
</source>
</sources>
</system.diagnostics>
<system.serviceModel>
<diagnostics>
<messageLogging logEntireMessage="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="false" />
</diagnostics>
</system.serviceModel>
如果问题仍然存在,请随时告诉我。