0

我试图记录对我的 WCF Restfull 服务的所有调用。我需要能够查看方法名称、传递给它的所有参数以及任何响应(字符串、对象、列表)

这是我在配置文件中的设置:

<system.serviceModel>
    <diagnostics>
  <messageLogging
       logEntireMessage="true"
       logMalformedMessages="true"
       logMessagesAtServiceLevel="false"
       logMessagesAtTransportLevel="true"
       maxMessagesToLog="2147483647"
       maxSizeOfMessageToLog="2147483647"/>
</diagnostics>

</system.serviceModel>
 <system.diagnostics>
<sources>
  <source name="System.ServiceModel" switchValue="Verbose,ActivityTracing" propagateActivity="true">
    <listeners>
      <add name="ServiceModelTraceListener">
        <filter type=""/>
      </add>
    </listeners>
  </source>
  <source name="System.ServiceModel.MessageLogging">
    <listeners>
      <add name="ServiceModelMessageLoggingListener">
        <filter type=""/>
      </add>
    </listeners>
  </source>
</sources>
<sharedListeners>
  <add initializeData="c:\Temp\Tracelog.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="ServiceModelTraceListener" traceOutputOptions="Timestamp">
    <filter type=""/>
  </add>
  <add initializeData="c:\Temp\Messages.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp">
    <filter type=""/>
  </add>
</sharedListeners>
<trace autoflush="true"/>

在 Messages.svclog 文件中,Activity 选项卡不显示对我的 Method 的调用。它仅在 Received 消息的正文中显示传递的参数。响应消息也不显示方法名称,但我可以在 Action 属性下看到它。

在 Tracelog.svclog 文件中,活动选项卡确实显示了对我的方法的调用,但它不显示任何传递的参数或响应对象

如何设置它以查看使用参数调用的方法及其响应?

4

1 回答 1

1

您将需要扩展 WCF 以将您的日志记录注入其中。您可以提供自己的IOperationInvoker,它可以记录调用的输入和输出,也可以使用IParameterInspector。您还可以查看IDesign的企业服务日志(您必须在页面上搜索它)或者这里是直接链接

于 2013-05-30T19:24:49.717 回答