Трассировка на стороне сервера сообщений SOAP для службы WCF - PullRequest
1 голос
/ 25 февраля 2010

Я пытаюсь следовать этому руководству по настройке трассировки SOAP на стороне сервера для моей службы WCF, а также документации MSDN .

Когда я запускаю тест, я вижу активность 00000000 в Microsoft Service Trace Viewer, но вкладка сообщений пуста. C: \ temp \ Web_tracelog.svclog пишется, а C: \ temp \ Web_messages.svclog - нет.

Я, наверное, упускаю что-то простое здесь, но не могу понять, что это.

На вкладке «Диагностика» редактора конфигурации служб Microsoft указано, что все включено. Соответствующие части web.config следуют.

<system.diagnostics>
  <sources>
   <source name="System.ServiceModel" switchValue="Verbose,ActivityTracing"
    propagateActivity="true">
    <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="Verbose, ActivityTracing">
    <listeners>
     <add type="System.Diagnostics.DefaultTraceListener" name="Default">
      <filter type="" />
     </add>
     <add name="ServiceModelMessageLoggingListener">
      <filter type="" />
     </add>
    </listeners>
   </source>
  </sources>
  <sharedListeners>
   <add initializeData="C:\temp\Web_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\Web_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" />
</system.diagnostics>

 <system.serviceModel>
  <diagnostics>
   <messageLogging logEntireMessage="true" logMalformedMessages="true"
    logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" />
  </diagnostics>
 </system.serviceModel>

1 Ответ

4 голосов
/ 26 февраля 2010

Не вижу, что не так с этим конфигом, но вот конфиг, который я использую, работает без проблем, если он пригодится:

<system.diagnostics>
  <sources>
    <source name="System.ServiceModel" switchValue="Verbose,ActivityTracing">
      <listeners>
        <add name="ServiceModelTraceListener"
         initializeData="c:\MyTracelog.svclog"
         type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
         traceOutputOptions="Timestamp"/>
      </listeners>
    </source>
  </sources>
  <trace autoflush="true" />
</system.diagnostics>

<system.serviceModel>
    <diagnostics>
      <messageLogging logEntireMessage="true" logMalformedMessages="true"
              logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" />
    </diagnostics>
</system.serviceModel>
...