12

Microsoft Service Configuration Editor を使用して診断 (WCF ログ) をセットアップしていますが、最大ファイル サイズを設定する方法が見つかりません。

MaxSizeOfMessageToLog を見つけましたが、ファイル サイズについては何もしませんか?

編集 1:これによると: http://msdn.microsoft.com/en-us/library/aa395205.aspx sharedListeners レベルに maxFileSizeKB があるはずですが、追加タグでスペースを押すと、可能性がありませんmaxFileSizeKB と入力しますか?

編集 2: maxFileSizeKB を追加すると、サービスが開始されなくなり、代わりに次の例外が発生します。

'maxFileSizeKB' は、タイプ 'System.Diagnostics.XmlWriterTraceListener' の有効な構成属性ではありません。説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。例外の詳細: System.Configuration.ConfigurationErrorsException: 'maxFileSizeKB' は、タイプ 'System.Diagnostics.XmlWriterTraceListener' の有効な構成属性ではありません。ソース エラー: 現在の Web 要求の実行中に未処理の例外が生成されました。例外の発生元と場所に関する情報は、以下の例外スタック トレースを使用して特定できます。

編集3:

Circular TraceListener サンプルをダウンロードしてプロジェクトに含める必要がありましたが、組み込みの fileSize リミッターはありません。

私の設定は今次のようになります:

<system.diagnostics>
    <sources>
      <source name="System.ServiceModel.MessageLogging" switchValue="Warning, ActivityTracing">
        <listeners>
          <add name="ServiceModelMessageLoggingListener"/>
        </listeners>
      </source>
      <source name="System.ServiceModel" switchValue="Warning,ActivityTracing"
        propagateActivity="false">
        <listeners>
          <add name="ServiceModelTraceListener"/>
        </listeners>
      </source>
    </sources>
    <sharedListeners>
      <add initializeData="C:\My\MyRelease 0.31\Host\My.Host.Dev\web_messages.svclog"
        type="Microsoft.Samples.ServiceModel.CircularTraceListener,CircularTraceListener"
        name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp" maxFileSizeKB="1024">
        <filter type="" />
      </add>
      <add initializeData="C:\My\MyRelease 0.31\Host\My.Host.Dev\web_tracelog.svclog"
        type="Microsoft.Samples.ServiceModel.CircularTraceListener,CircularTraceListener"
        name="ServiceModelTraceListener" traceOutputOptions="Timestamp" maxFileSizeKB="1024">
        <filter type="" />
      </add>
    </sharedListeners>

これはメッセージ ログ ファイルを制限していますが、トレース ログ ファイルは制限していませんか?

4

2 に答える 2

12

これは、指定したリンクが、「maxFileSizeKB」プロパティを持つカスタム トレース リスナー (「Microsoft.ServiceModel.Samples.CircularTraceListener」) を使用しているためです。

svclog ファイルを制限/ロールする機能が組み込まれていないため、カスタム トレース リスナーを使用する必要があります。リンクで使用されているサンプルを使用できます (記事の最後にあるコードのダウンロード方法を参照してください)。または、ここに便利な別のものがあります。

于 2012-04-11T08:26:50.723 に答える
8

これが機能するために@Fabskeの回答に追加したいだけです

1) WCF サンプルをダウンロードします: http://go.microsoft.com/fwlink/?LinkId=150780

2) 開く:\WF_WCF_Samples\WCF\Basic\Management\CircularTracing

3) ソリューションをビルドし、CircularTraceListener.dll を取得します。

4)そのdllをプロジェクト参照に追加します

5) http://msdn.microsoft.com/en-us/library/aa395205(v=vs.100).aspxに示すように構成を更新します。

于 2012-08-28T17:44:11.977 に答える