次の方法で共有


ワークフロー構成ファイル

Windows Workflow Foundation ホスト アプリケーションは、構成ファイルを使用して WorkflowRuntime オブジェクトの動作を制御できます。

構成セクションの作成

構成ファイルを使用してワークフロー ランタイム エンジンを構成するには、まず、アプリケーションの .config ファイル (app.config) または Web サービスの .config ファイル (web.config) を作成する必要があります。構成ファイルでは、次の XML コードのように構成セクションを作成します。

<configuration>
    <configSections>
        <section name="WorkflowRuntime" type="System.Workflow.Runtime.Configuration.WorkflowRuntimeSection, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken 31bf3856ad364e35" />
    </configSections>
</configuration>

構成セクションの定義

構成ファイルには複数の構成セクションを含めることができますが、WorkflowRuntime オブジェクトのインスタンス化に使用できるセクションは 1 つだけです。

構成セクションを宣言したら、ランタイムがセクションに使用する構成情報を追加します。上に挙げた例の name 属性に指定した名前と、セクション タグの名前が一致するようにします。この例の場合、セクション タグは WorkflowRuntime です。

<WorkflowRuntime Name="SampleApplication">
    <CommonParameters>
        <add name="ConnectionString" value="Initial Catalog=WorkflowStore;Data Source=localhost;Integrated Security=SSPI;" />
    </CommonParameters>
    <Services>
        <add type="System.Workflow.Runtime.Hosting.DefaultWorkflowSchedulerService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" maxQueuedWorkItems="20"/>
        <add type="System.Workflow.Runtime.Hosting.SharedConnectionWorkflowTransactionService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />    
        <add type="System.Workflow.Runtime.Hosting.SqlWorkflowPersistenceService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" UnloadOnIdle="false"/>
    </Services>
</WorkflowRuntime>

WorkflowRuntime 構成セクションには、1 つの単一の属性があります。Name を使用して、この WorkflowRuntime の名前を指定します。名前は出力で使用され、このランタイムを、システムで実行されている他のランタイム (パフォーマンス カウンタなど) と区別するために使用されます。

構成セクションには、2 つのネストした要素が含まれます。最初の要素 CommonParameters は、複数のサービスでグローバルに使用されるパラメータを定義します (たとえば SharedConnectionWorkflowCommitWorkBatchService を使用する場合の ConnectionString)。もう 1 つの要素は、ワークフロー ランタイム エンジン用に構成される各サービスの一覧を表示します。サービスが追加の構成パラメータを取る場合、上に挙げた例の maxQueuedWorkItems 属性や UnloadOnIdle 属性のように、パラメータは属性として含めることができます。

構成ファイルの使用

構成ファイルは、WorkflowRuntime オブジェクトの動作を制御します。WorkflowRuntime オブジェクトのインスタンスを作成するときにプログラムを使用してサービスを追加できます。または、このトピックで説明するように構成ファイルを使用することも可能です。構成ファイルに定義されている構成セクションを使用するには、構成セクションの名前をパラメータとして WorkflowRuntime コンストラクタに渡します。

前述の説明で作成した WorkflowRuntime 構成セクションを使用して WorkflowRuntime インスタンスを作成する方法を次に示します。

WorkflowRuntime runtime = new WorkflowRuntime("WorkflowRuntime");
Dim runtime As New WorkflowRuntime("WorkflowRuntime")

追加の構成オプション

以下のセクションでは、構成ファイルを使用してワークフローのさまざまな機能 (作業バッチの再コミット、ワークフロー データのログ記録) を有効にする方法について説明します。

作業バッチの再試行を有効にする

作業バッチを永続的ストアにコミットするサービス (DefaultWorkflowCommitWorkBatchServiceSqlWorkflowPersistenceService など) の場合、EnableRetries プロパティを次の例のように設定することで、トランザクションの再試行を有効にすることができます。

<WorkflowRuntime Name="SampleApplication" UnloadOnIdle="false">
    <CommonParameters>
        <add name="ConnectionString" value="Initial Catalog=WorkflowStore;Data Source=localhost;Integrated Security=SSPI;" />
        <add name="EnableRetries" value="True" />
    </CommonParameters>
    <Services>
        <add type="System.Workflow.Runtime.Hosting.SqlWorkflowPersistenceService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" EnableRetries="False" /> 
     </Services>
</WorkflowRuntime>

EnableRetries プロパティは、(CommonParameters セクションのように) グローバル レベルで設定することも、(Services セクションのように) EnableRetries をサポートするサービスごとに設定することもできます。この例では、SqlWorkflowPersistenceService を除いて、EnableRetries をサポートするすべてのサービスでこの機能が有効になります。

EnableRetries をサポートするサービスは次のとおりです。

  • DefaultWorkflowCommitWorkBatchService

  • SharedConnectionWorkflowCommitWorkBatchService

  • SqlWorkflowPersistenceService

  • SqlTrackingService

詳細については、さきほどの一覧の各クラスの EnableRetries プロパティを参照してください。

作業バッチ トランザクションの再試行に関する一般情報は、「ワークフロー内状態情報のバッチ化」を参照してください。

ワークフロー ログ出力の有効化

構成ファイルを使用して Windows Workflow Foundation ログ情報を出力し、シナリオのデバッグに活用できます。Windows Workflow Foundation は、.NET Framework 2.0 で導入された構成形式を採用しています。Windows Workflow Foundation 名前空間のログ情報を有効にする例を次に示します。

<system.diagnostics>
    <switches>
        <add name="System.Workflow LogToFile" value="1" />
        <add name="System.Workflow.Runtime" value="All" />
        <add name="System.Workflow.Runtime.Hosting" value="All" />
        <add name="System.Workflow.Runtime.Tracking" value="All" />
        <add name="System.Workflow.Activities" value="All" />
        <add name="System.Workflow.Activities.Rules" value="All" />       
    </switches>
</system.diagnostics>

この例では、最初の "add name" によってファイルへのログ出力を有効にします。ログ ファイルは、WorkflowTrace.log という名前でホスト アプリケーション ディレクトリ下に作成されます。他のオプションでは、name パラメータを "System.Workflow LogToTraceListener" と同様に設定することで、TraceListener のログ出力を有効にしています。このように設定すると、Windows Workflow Foundation はホスト アプリケーションに作成された TraceListener を個別に列挙し、それらに対してすべてのログ情報を送信します。

前述の例のその他の行では、名前空間を指定して、ログ情報および追跡された情報量をキャプチャできます。value 属性には、次のような値を設定できます。

説明

All

すべての受信メッセージをログに出力します。

Off

どのようなメッセージもログに出力しません。

Critical

重大と見なされるメッセージのみログに出力します。

エラー

重大なメッセージとエラー メッセージをログに出力します。

Warning

重大なメッセージ、エラー メッセージ、および警告メッセージをログに出力します。

Information

重大なメッセージ、エラー メッセージ、警告メッセージ、および情報メッセージをログに出力します。

Verbose

重大なメッセージ、エラー メッセージ、警告メッセージ、情報メッセージ、および詳細メッセージをログに出力します。

関連項目

参照

WorkflowRuntime

その他の技術情報

How to: Add and Remove Workflow Services
Windows Workflow Foundation の一般的な参照情報

Footer image

Copyright © 2007 by Microsoft Corporation.All rights reserved.