Workflow 启用持久性时,WF4中的多个接收活动失败

Workflow 启用持久性时,WF4中的多个接收活动失败,workflow,persistence,workflow-foundation-4,Workflow,Persistence,Workflow Foundation 4,我有一个具有多个接收功能的WF4工作流 在添加持久性之前,工作流运行良好。我创建了持久性表,并将以下内容添加到web.config的\configuration\system.serviceModel\behaviors\serviceBehaviors部分: <behavior> <!-- To avoid disclosing metadata information, set the value below to false and remove th

我有一个具有多个接收功能的WF4工作流

在添加持久性之前,工作流运行良好。我创建了持久性表,并将以下内容添加到web.config的\configuration\system.serviceModel\behaviors\serviceBehaviors部分:

    <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>
它在代理上失败。创建行时出现以下错误

值为“11e5cf14-c2a8-0fbf-d3b5-c12a91c174ff”的实例键 已经存在。这可能是因为有多个 定义的MessageQuerySet计算为相同的CorrelationKey


如果未启用持久性,则不会出现此错误。有人见过这个吗?我做错了什么?

您是否在同一个键上初始化关联和接收活动关联?如果你还没有读过关于基于内容的相关性的书,你会想读一读

添加一个CorrelationHandle类型的名为“sharedHandle”的工作流变量,并在创建调用时使用“查询相关初始值设定项”初始化“sharedHandle”。该属性将是所有接收调用都接受作为参数的内容

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