Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Workflow 是否有可能改变工作流中间的相关性?_Workflow_Workflow Foundation 4_Correlation - Fatal编程技术网

Workflow 是否有可能改变工作流中间的相关性?

Workflow 是否有可能改变工作流中间的相关性?,workflow,workflow-foundation-4,correlation,Workflow,Workflow Foundation 4,Correlation,我在工作流的开头放置了一个InitializeCorrelation活动,然后我想在不同的键上进行关联,因此我放置了另一个InitializeCorrelation活动,该活动具有不同的键,但出现以下错误: InstancePersistenceCommand的执行被中断,因为实例键“a765c209-5adc-4f03-9dd2-1af5e33aab3b”未与实例关联。发生这种情况的原因可能是实例或密钥已被清除,或者密钥无效。如果生成密钥的消息在错误的时间发送或包含错误的相关数据,则密钥可能无

我在工作流的开头放置了一个InitializeCorrelation活动,然后我想在不同的键上进行关联,因此我放置了另一个InitializeCorrelation活动,该活动具有不同的键,但出现以下错误:

InstancePersistenceCommand的执行被中断,因为实例键“a765c209-5adc-4f03-9dd2-1af5e33aab3b”未与实例关联。发生这种情况的原因可能是实例或密钥已被清除,或者密钥无效。如果生成密钥的消息在错误的时间发送或包含错误的相关数据,则密钥可能无效


那么,是否可以在工作流启动后更改相关性?

查看存储持久化Instance的数据库中的Instances表。其中一个条目可能具有挂起状态,还有一列包含一些错误描述。是什么导致了这个错误?您是否在工作流中做了一些更改并部署了它?

要明确回答这个问题,可以根据相关性更改数据。您不仅可以在序列中这样做,还可以在并行活动的每个分支中使用不同的关联数据。可以使用InitializeCorrelation或SendReply活动初始化关联,如下所述:

由于工作流设计器不是VisualStudio中最强大的部分(XPath查询从不检查,有时甚至构建错误也不会反映在活动上,等等),因此通常问题并不总是显而易见的。因此,我建议如下:

  • 对于特定关联数据,仅使用关联类型查询关联初始化CorrelationHandle一次
  • 为不同的关联数据初始化新的CorrelationHandle实例
  • 一旦CorrelationHandle被初始化,它可以在以后多次用于不同的接收活动(Receive.CorrelatesOn,Receive.CorrelatesWith)
  • 如果相关性不起作用,可能是因为XPath查询错误。如果OperationName或参数的名称发生更改,这些不会自动刷新。建议在重命名后重新生成它们
  • 在测试时关闭工作流持久性和NLB是一个好主意——让自己专注于相关问题

谢谢您的回复。。实际上,我找不到错误列。我正在使用AppFabric来持久化工作流。我没有对工作流程做任何更改。我放置了一个receive活动,调用此receive时出错。我认为这与关联过程有关。