次の方法で共有


ワークフロー トレース

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

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

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

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

  2. イベント ビューアーのツリー ビューで、>に移動します。 [Application Server-Applications] を右クリックし、[View->Show Analytic and Debug Logs] を選択します。 [デバッグ] を右クリックし、[ログの有効化] を選択します。

  3. ワークフローでデバッグが実行され、トレースが ETW デバッグ チャネルに出力されると、イベント ビューアーで表示できます。 Event Viewer->Applications and Services Logs->Microsoft->Windows->Application Server-Applications に移動します。 [デバッグ] を右クリックし、 [最新の情報に更新] を選択します。

  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 クライアント プロファイルを使用している場合は、まず .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>

こちらも参照ください