我试图记录我的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文件中,“活动”选项卡不显示对我的方法的调用。它仅显示已接收消息正文中的传递参数。响应消息也不显示方法名称,但我可以在Action属性下看到它。
在Tracelog.svclog文件中,“活动”选项卡确实显示对我的方法的调用,但它没有显示传递的任何参数或响应对象
如何设置它以查看我的方法是否使用参数及其响应进行调用?
答案 0 :(得分:1)
您需要扩展WCF以将注册记录到其中。您可以提供自己的IOperationInvoker,可以记录来自呼叫的输入和输出,也可以使用IParameterInspector。您还可以查看来自IDesign的The Enterprise Services日志(您必须在页面上搜索)或这里是direct link。