2

WorkflowServiceHost でホストされているワークフロー サービスに 2 つのメソッドがあります。

最初のメソッドが呼び出され、通常のワークフロー シーケンスが開始されます。他の Web サービスやデータベース作業などと通信しますが、場合によっては一時停止して db に持続し (遅延アクティビティのように)、続行する前に人間のアクションが行われるのを待ちます。 .

この永続化されたワークフローにフックし、ローカル変数を変更してから処理を続行するには、2 番目のメソッドが必要です。

ワークフローでのメッセージ ベースの相関関係を見てきましたが、実行中に 2 番目のサービス メソッド呼び出しが到着できるように、ある種の無限 while ループがワークフロー インスタンスをアクティブに保つ例しか見つけられないようです。

私のワークフロー インスタンスは遅延/永続化されるため、2 番目のサービス呼び出しはどこにも到達しないようです (ワークフロー インスタンスをアクティブに保つ無限 while ループを持つことはできません)。

これが理にかなっていることを願っています - 乾杯!

4

3 に答える 3

1

ここで何か問題にぶつかりましたか?もしそうなら、何が起こっているのですか、それともどのようなエラーが見られますか?

私が尋ねる理由は、これがうまくいくはずだからです。WorkflowServiceHostはメッセージを受信し、必要に応じて永続ストアからワークフローをロードし、ワークフロー内のブックマークを再開します(Receiveアクティビティは内部でブックマークを使用しました)。

于 2010-04-01T19:50:59.830 に答える
1

Receive で Delay の終了を中断できるようにする場合は、2 番目の Receive アクティビティと共に Delay アクティビティを PickBranch に配置する必要があります。今説明したように、Delay アクティビティは、Receive アクティビティが実際にブックマークを登録するポイントまでワークフローが進行するのを妨げています。

于 2011-03-11T16:48:05.877 に答える
0

2番目のサービス呼び出しでCanCreateInstanceがtrueに設定されておらず、相関が正しく構成されていることを確認してください。他のポスターが述べたように、これは問題なく機能するはずです。

于 2011-03-11T15:06:39.053 に答える