次の方法で共有


ワークフロー トレース

ワークフロー トレースでは、.NET Framework のトレース リスナーを使用して診断情報を取得できます。 トレースは、アプリケーションで問題が検出された場合に有効にし、その問題が解決されたら、再度無効にすることが可能です。 ワークフローのデバッグ トレースを有効にする方法は 2 つあります。 また、イベント トレース ビューアーを使用してトレースを構成したり、System.Diagnostics を使用してトレース イベントをファイルに送信したりすることができます。

ETW でのデバッグ トレースの有効化

ETW を使用してトレースを有効化するには、次の手順に従ってイベント ビューアーでデバッグ チャネルを有効化します。

  1. イベント ビューアーで分析ログおよびデバッグ ログのノードに移動します。

  2. イベント ビューアーのツリー ビューで、[イベント ビューアー] -> [アプリケーションとサービス ログ] -> [Microsoft] -> [Windows] -> [アプリケーション サーバー - アプリケーション] の順に移動します。 [アプリケーション サーバー - アプリケーション] を右クリックし、[表示] -> [分析およびデバッグ ログの表示] の順にクリックします。 [デバッグ] を右クリックし、 [ログの有効化] をクリックします。

  3. ワークフローがデバッグを実行し、トレースが ETW デバッグ チャネルに出力されると、トレースをイベント ビューアーで参照できます。 [イベント ビューアー] -> [アプリケーションとサービス ログ] -> [Microsoft] -> [Windows] -> [アプリケーション サーバー - アプリケーション] の順に移動します。 [デバッグ] を右クリックし、 [最新の情報に更新] を選択します。

  4. 既定の分析トレースのバッファー サイズは 4 KB ですが、このサイズを 32 KB に増やすことをお勧めします。 このためには、次の手順を実行します。

    1. 現在のフレームワークのディレクトリ (C:\Windows\Microsoft.NET\Framework\v4.0.21203 など) で、次のコマンドを実行します。wevtutil um Microsoft.Windows.ApplicationServer.Applications.man

    2. Windows.ApplicationServer.Applications.man ファイルの <bufferSize> の値を 32 に変更します。

      <channel name="Microsoft-Windows-Application Server-Applications/Analytic" chid="ANALYTIC_CHANNEL" symbol="ANALYTIC_CHANNEL" type="Analytic" enabled="false" isolation="Application" message="$(string.MICROSOFT_WINDOWS_APPLICATIONSERVER_APPLICATIONS.channel.ANALYTIC_CHANNEL.message)" >  
                  <publishing>  
                    <bufferSize>32</bufferSize>  
                  </publishing>  
                </channel>  
      
    3. 現在のフレームワークのディレクトリ (C:\Windows\Microsoft.NET\Framework\v4.0.21203 など) で、次のコマンドを実行します。wevtutil im Microsoft.Windows.ApplicationServer.Applications.man

注意

.NET Framework 4 Client Profile を使用している場合は、.NET Framework 4 ディレクトリから次のコマンドを実行して、最初に ETW マニフェストを登録する必要があります。ServiceModelReg.exe –i –c:etw

System.Diagnostics によるデバッグ トレースの有効化

これらのリスナーは、ワークフロー アプリケーションの App.config ファイルまたはワークフロー サービスの Web.config ファイルで構成します。 この例では、現在のディレクトリにある MyTraceLog.txt ファイルにトレース情報を保存するように TextWriterTraceListener が構成されています。

<configuration>  
  <system.diagnostics>  
    <sources>  
      <source name="System.Activities" switchValue="Information">  
        <listeners>  
          <add name="textListener" />  
          <remove name="Default" />  
        </listeners>  
      </source>  
    </sources>  
    <sharedListeners>  
      <add name="textListener"  
           type="System.Diagnostics.TextWriterTraceListener"  
           initializeData="MyTraceLog.txt"  
           traceOutputOptions="ProcessId, DateTime" />  
    </sharedListeners>  
    <trace autoflush="true" indentsize="4">  
      <listeners>  
        <add name="textListener" />  
      </listeners>  
    </trace>  
  </system.diagnostics>  
</configuration>  

関連項目