1

クライアントがサードパーティの Web サービスを使用しているときに、クライアントでリクエスト広告応答メッセージをログに記録しようとしています。

多くの試行にもかかわらず、app.config ファイルで次の WCF 構成を使用して、ログ ファイル - MessageLog.svclog が作成されることはありません。助けてください。

<system.diagnostics>
<sources>
  <source
     name="System.ServiceModel.MessageLogging"
     switchValue="Information, ActivityTracing" >
    <listeners>
      <add name="yourTrace"
           type="System.Diagnostics.XmlWriterTraceListener"
           initializeData="C:\Log\MessageLog.svclog">
        <filter type="" />
      </add>
    </listeners>
  </source>
</sources>
<trace autoflush="true" />
</system.diagnostics>
<system.serviceModel>
<diagnostics>
<messageLogging
        logMessagesAtTransportLevel="true"
        logMessagesAtServiceLevel="false"
        logMalformedMessages="true"
        logEntireMessage="true"
        maxSizeOfMessageToLog="65535000" maxMessagesToLog="500" />
</diagnostics>
</system.serviceModel>

ありがとうございました !

4

2 に答える 2

4

これを試して。SharedListeners ノードに注意してください

<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:\Log\MessageLog.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"
          logMessagesAtTransportLevel="true" />
    </diagnostics>
    ...
</system.serviceModel>
于 2013-01-17T19:31:54.943 に答える
0

App.config とフォルダーのアクセス許可がまったく問題ない WS クライアントのトレースに問題がありました。私の場合の解決策は、.exe.config に名前を変更することでした (WS クライアント dll の .dll.config にビルドされました)。したがって、次のことを確認してください。

  1. 構成ファイルのフォルダー内の名前がアセン​​ブリ名と一致すること
  2. 実行/デバッグすると、構成ファイルのアセンブリが実際に使用され、他の場所のアセンブリではありません。
  3. .dll.config に組み込まれている場合、無視される可能性があります。これは、.exe.config である必要があるためです。

-m

于 2014-06-05T13:39:15.527 に答える