2009-07-06 6 views
5

He habilitado el seguimiento de mensajes en un servicio WCF. rastrea un par de mensajes y luego se detiene, cuando trato de abrir la traza en TraceViwer me da un error en el último mensaje que se registró, o incluso no abre el archivo duo a un error diferente cada vez.El archivo de traza WCF sigue corrompiéndose?

Ni siquiera puedo eliminar el archivo dañado a menos que ejecute un restablecimiento ya que el archivo se está utilizando.

aquí está mi configuración de rastreo.

<system.diagnostics> 
     <sources> 
      <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> 
     <sharedListeners> 
      <add initializeData="C:\Logs\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> 
    </system.diagnostics> 

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

Respuesta

11

Según la respuesta de John, puede usar Trace.AutoFlush para enjuagar el archivo después de cada escritura. Algo a lo largo de las líneas de this example ...

<system.diagnostics> 
    <sources> 
     <source name="UserTraceSource" switchValue="Warning, ActivityTracing" > 
      <listeners> 
       <add name="xml" 
       type="System.Diagnostics.XmlWriterTraceListener" 
       initializeData="C:\logs\UserTraces.svclog" /> 
      </listeners> 
     </source> 
    </sources> 
    <trace autoflush="true" /> 
</system.diagnostics> 
+0

Ja! ¡No sabía sobre eso! –

+0

John, eso hace que mi día ... ¡quizás mi semana! :) –

+5

a veces me pregunto qué solía hacer sin este sitio. –

1

¿El servicio todavía está en ejecución? Entonces, el problema puede ser simplemente que el archivo no se ha eliminado aún.

Cuestiones relacionadas