2013-05-30 4 views
0

Im пытается сохранить журнал всех вызовов моей службы WCF Restfull. мне нужно, чтобы иметь возможность просмотреть имя метода, все параметры, которые передаются ему, и никакого ответа (строка, объект, список)Регистрация WCF с параметрами и именем метода

Вот мой набор в конфигурационном файле:

<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 не показывает вызовы моего метода. Он отображает только переданные параметры в теле получаемого сообщения. Ответное сообщение также не отображает имя метода, но я вижу его в свойстве Действие.

В файле Tracelog.svclog, вкладка активность делает шоу звонки на мой метод, но он не показывает каких-либо параметров, которые передаются или объект ответа

Как я могу настроить его, чтобы увидеть мои методы, которые называются с параметрами и его ответом?

ответ

1

Вам нужно будет расширить WCF, чтобы ввести свой вход в систему. Вы можете предоставить свой собственный IOperationInvoker, который может записывать входы и выходы из вызова, или вы можете использовать IParameterInspector. Вы также можете посмотреть The Enterprise Services Журнал с IDesign (вам нужно его найти на странице) или здесь direct link.

+0

Я надеялся на более простой способ достичь этого. –

+1

Если вы посмотрите на предоставленные ссылки, они дадут вам полные примеры того, как добиться реализации перехватов. Они могут выглядеть тяжело, но их довольно просто добавить. –

Смежные вопросы