2010-12-13 10 views
5

複数の受信機能を持つWF4ワークフローがあります。永続性を有効にすると、WF4で複数の受信アクティビティが失敗する

ワークフローは、永続性を追加するまで正常に動作します。ワークフローは、私が持っているWorkflowInstanceDTO POCOのインスタンスであるパラメータを受け入れ

<behavior> 
     <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment --> 
     <serviceMetadata httpGetEnabled="true" /> 
     <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information --> 
     <serviceDebug includeExceptionDetailInFaults="true" /> 
     <sqlWorkflowInstanceStore connectionStringName="InstanceStore" 
     instanceCompletionAction="DeleteAll" 
     instanceLockedExceptionAction= "NoRetry" 
     instanceEncodingOption="None" 
     hostLockRenewalPeriod="00:01:00" 
     /> 
    </behavior> 

:私は永続テーブルを作成し、私のweb.configファイルの\構成に以下の\ system.serviceModel \振る舞い\ serviceBehaviorsセクションを追加しました定義された。

私はそれが次のエラーでproxy.Createラインに失敗し、次のコード

var wfi = new WFService.WorkflowInstanceDTO() 
    { 
     Id = 1, 
     InstanceId = new Guid(), 
     Description = "Awesome WFI", 
     WorkflowId = 1 
    }; 
    proxy.Create(wfi); 

とワークフローを実行します。

値のインスタンスキー '11e5cf14-c2a8-0fbf-d3b5-c12a91c174ff' は既に存在します。同じCorrelationKeyを評価するMessageQuerySetsが複数定義されている可能性があります。

永続性が有効になっていない場合、このエラーは発生しません。誰もこれを見ましたか?私は間違って何をしていますか?

答えて

1

相関を初期化し、受信アクティビティは同じキーで相関しますか?あなたがまだいない場合、あなたはコンテンツベースの相関について読んでみたいと思うでしょう。

CorrelationHandle型の "sharedHandle"というワークフロー変数を追加し、Create呼び出しで "sharedHandle"を "相関初期化子"で初期化します。このプロパティは、すべての呼び出しを受け取るものが引数として受け入れるものです。

関連する問題