2009-07-06 9 views
5

WCFサービスでメッセージトレースを有効にしました。 TraceViwerでトレースを開こうとすると、ログに記録された最後のメッセージにエラーが表示されたり、毎回違うエラーにファイルを開くことさえできません。WCFトレースファイルが壊れていますか?

ファイルが使用されているため、リセットを実行しない限り、破損したファイルを削除することはできません。

ここは私のトレース設定です。

<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> 

答えて

11

回答ごとにTrace.AutoFlushを使用すると、書き込みごとにファイルをフラッシュできます。 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

ハハ!私はそれについて知らなかった! –

+0

ジョン、それは私の一日を作る...多分私の週! :) –

+5

私はこのサイトがなくても何をしていたのだろうかと思っています。 –

1

サービスはまだ実行されていますか?次に、ファイルがまだフラッシュされていないことが問題になることがあります。

関連する問題