サービスの構成: ワークフロー ホスト管理 タブ

[サービスの構成] ダイアログ ボックスの [ワークフロー ホスト管理] タブを使用して、サービスに対して以下のホスト機能を構成します。

重要

このタブはワークフロー (WF) サービスのみに使用できます。WCF コードベースのサービスには使用できません。

ダイアログ ボックスのフィールド

フィールド

[説明]

インスタンス制御を有効にする

このサービスのインスタンス制御を有効にするには、このチェック ボックスをオンにします。サービスが含まれるアプリケーションで net.pipe プロトコルが有効になっていない場合は、タブの上部に次の警告メッセージが表示されます。

警告

"アプリケーションで有効なプロトコルの一覧に net.pipe プロトコルが含まれていないので、インスタンス制御は完全には機能しません。"

また、サービスが含まれるアプリケーションで net.pipe プロトコルが有効になっていない場合、[インスタンス制御を有効にする] オプションをオンにすると、メッセージ ボックスに次のテキストが表示されます。

警告

インスタンス制御には、アプリケーションで net.pipe プロトコルが有効になっている必要があります。変更の適用時に net.pipe を有効にしますか?

[はい] をクリックし、この設定を適用すると、net.pipe プロトコルがアプリケーションで有効になります。または、次に説明する手順に従って、アプリケーションで net.pipe プロトコルを手動で有効にすることができます。

  1. IIS マネージャーで、サービスが含まれるアプリケーションの名前を右クリックします。

  2. [アプリケーションの管理] をポイントし、[詳細設定] をクリックして起動します。

  3. [詳細設定] ダイアログ ボックスで、"有効なプロトコル" フィールドの値に「,」 (コンマ) 記号およびそれに続く「net.pipe」を追加します。

  4. [OK] をクリックして [詳細設定] ダイアログ ボックスを閉じ、[閉じる] をクリックして [サイト バインド] ダイアログ ボックスを閉じます。

また、サービスが含まれる Web サイトでも net.pipe バインドが有効になっている必要があります。サイト レベルで net.pipe バインドを有効にするには

  1. IIS マネージャーでサイト名を右クリックし、[バインドの編集] をクリックして [サイト バインド] ダイアログ ボックスを開きます。

  2. [サイト バインド] ダイアログ ボックスに net.pipe バインドが表示されない場合は、[追加] をクリックして [サイト バインドの追加] ダイアログ ボックスを開きます。

  3. [サイト バインドの追加] ダイアログ ボックスで、"種類" フィールドに net.pipe を選択し、"バインド" フィールドに「*」と入力します。

  4. [OK] をクリックして [サイト バインドの追加] ダイアログ ボックスを閉じ、[閉じる] をクリックして [サイト バインド] ダイアログ ボックスを閉じます。

アイドル時にインスタンスをアンロードする

一定期間アイドル状態にあるワークフロー サービス インスタンスをメモリからアンロードし、永続化データベースに保持するには、このチェック ボックスをオンにします。

アンロード タイムアウト (秒)

ワークフロー サービス インスタンスがアイドル状態を維持する期間を指定します。その後、ホストはメモリからインスタンスをアンロードし、インスタンスの状態情報を永続化データベースに保持します。このパラメーターの既定値は 60 秒です。この値を 0 に設定した場合、ホストはインスタンスがアイドル状態になったらすぐにインスタンスをアンロードし、永続化します。許可される最大値は TimeSpan.MaxValue です。

アイドル時にインスタンスを保持する

一定時間アイドル状態にあるワークフロー サービス インスタンスの状態情報を永続化データベースに保持するには、このチェック ボックスをオンにします。この場合、インスタンスはメモリからアンロードされません。このプロパティの既定値は TimeSpan.MaxValue です。

保持タイムアウト (秒)

ワークフロー サービス インスタンスがアイドル状態を維持する期間を指定します。その後、ホストはインスタンスを永続化データベースに保持します。このフィールドの値は、[アイドル時にインスタンスを保持する] チェック ボックスがオンの場合にのみ指定できます。このパラメーターの既定値は TimeSpan.MaxValue 秒です。このパラメーターの値を TimeSpan.MaxValue に設定すると、ランタイムはアイドルになったワークフロー インスタンスを保持しません。この値を 0 に設定した場合、ホストはインスタンスがアイドル状態になったらすぐにインスタンスを永続化します。また、[アイドル時にインスタンスを保持する] および [アイドル時にインスタンスをアンロードする] の両方を選択した場合は、[保持タイムアウト] の値が [アンロード タイムアウト] の値より小さくなるように設定する必要があります。このようにしなければ、インスタンスは保持されません。

ハンドルされない例外に対するアクション

ハンドルされない例外がインスタンスに発生したときにホストが実行するアクションを指定します。指定できる値は次のとおりです。Abandon (破棄)、AbandonAndSuspend (破棄と中断)、Terminate (終了)、および Cancel (キャンセル) です。既定値は Abandon です。次に、これらのオプションについて説明します。

  • [破棄]。サービス ホストはメモリ内のワークフロー サービス インスタンスを中止します。データベース内のインスタンスの状態は "アクティブ" のままです。ワークフロー管理サービスは、永続化データベースに保存された最後の永続化ポイントから、破棄されたワークフロー インスタンスを回復します。

  • [破棄と中断]。サービス ホストはメモリ内のワークフロー サービス インスタンスを中止し、永続化データベースでインスタンスの状態を "中断" に設定します。中断されたインスタンスは、後から IIS マネージャーを使用して再開または終了できます。これらのインスタンスは、ワークフロー管理サービスで自動的には回復されません。

  • [終了]。サービス ホストはメモリ内のワークフロー サービス インスタンスを中止し、永続化データベースでインスタンスの状態を "完了 (終了)" に設定します。終了したインスタンスを後から再開することはできません。

  • [キャンセル]。ワークフローを適切な方法で終了するようにすべてのキャンセル ハンドラーを起動することで、サービス ホストがワークフロー サービス インスタンスをキャンセルし、永続化データベース内のインスタンスの状態を "完了 (キャンセル)" に設定します。

関連する構成

[ワークフロー ホスト管理] タブのフィールドは、構成ファイル内の次の要素と属性に対応しています。

<behaviors>
    <serviceBehaviors>
        <behavior name="TutorialServiceConfiguration">
            <workflowInstanceManagement authorizedWindowsGroup="AS_Administrators" /><workflowUnhandledException action="AbandonAndSuspend" /><workflowIdle timeToUnload="00:01:00" timeToPersist="00:00:20" />
        </behavior>
   </serviceBehaviors>
</behaviors>

次の一覧に、このダイアログ ボックスのユーザー インターフェイス要素に関連付けられた XML 要素または属性を示します。

UI 要素 XML 要素または属性 コメント

インスタンス制御を有効にする

workflowInstanceManagment 要素

このチェック ボックスをオンにすると、サービスに関連付けられた behavior 要素に workflowInstanceManagement 要素が追加されます (この要素がまだ存在しない場合)。このチェック ボックスをオフにすると、workflowInstanceManagement 要素は削除されます。

ヒント

workflowInstanceManagement 要素の authorizedWindowsGroup 属性は、AS_Administrators グループに設定されます。このタブでこの属性の値を変更することはできません。このロールに異なる Windows グループを割り当てるには、構成ファイルでこの属性の値を直接変更してください。

アイドル時にインスタンスをアンロードする

workflowIdle 要素

このチェック ボックスをオンにすると、サービスに関連付けられた behavior 要素に workflowIdle 要素が追加されます (workflowIdle 要素がまだ存在しない場合)。このチェック ボックスをオフにすると、[アイドル時にインスタンスを保持する] チェック ボックスがオフの場合は workflowIdle 要素が削除されます。[アイドル時にインスタンスを保持する] チェック ボックスがオンの場合は、workflowIdle 要素は保持され、timeToUnload 属性の値が TimeSpan.MaxValue に設定されます。

アンロード タイムアウト (秒)

workflowIdle 要素の timeToUnload 属性

workflowIdle 要素の timeToUnload 属性の値は、このフィールドに指定した値に設定されます。

アイドル時にインスタンスを保持する

workflowIdle 要素

このチェック ボックスをオンにすると、サービスに関連付けられている behavior 要素に workflowIdle 要素が追加されます (workflowIdle 要素がまだ存在しない場合)。<workflowIdle> 要素が追加され、workflowIdle の timeToPersist 属性の値は "保持タイムアウト" フィールドで指定された値に設定され、timeToUnload 属性の値は TimeSpan.MaxValue に設定されます。このチェック ボックスをオフにすると、[アイドル時にインスタンスをアンロードする] チェック ボックスがオフの場合は workflowIdle 要素が削除されます。[アイドル時にインスタンスをアンロードする] チェック ボックスがオンの場合は、workflowIdle 要素は保持され、timeToPersist 属性の値が TimeSpan.MaxValue に設定されます。

保持タイムアウト (秒)

workflowIdle 要素の timeToPersist 属性

workflowIdle 要素の timeToPersist 属性の値は、"保持タイムアウト (秒)" フィールドに指定した値に設定されます。

ハンドルされない例外に対するアクション

workflowUnhandledException 要素の action 属性

このフィールドの値を選択すると、構成ファイルに workflowUnhandledException 要素が追加され (この要素がまだ存在しない場合)、この要素の action 属性の値は、このフィールドに指定した値に設定されます。

  2012-03-05