2

我正在尝试使用 WF4 和 AppFabric 执行单实例工作流。我只想要一个在集群中运行的工作流实例。

我尝试了一种 biztalk 风格:创建实例的方法 (CallService()),以及未检查 cancreateinstance 的其他接收活动 (CallService()) 中的相同方法。(我想我可以通过 xpath 将它与肥皂消息中的动作关联起来,但让我们忘记在这一步进行关联)。

我的问题是 WF 总是创建实例并且在第二次调用中不相关。

你知道怎么解决吗?我想优先考虑创建实例的相关性。还有其他方法吗?

提前致谢。

4

1 回答 1

1

我找到了解决方案。这是我写的内容:http: //pablocastilla.wordpress.com/2010/10/09/single-instance-of-a-workflow-in-the-cluster-with-wf-4-0-and-应用面料/

我们如何接收具有相同实例的消息?很容易在接收形状中制作一个小技巧:

  1. 我们创建一个关联处理程序。我们称之为 singleIntanceHandler
  2. 在接收形状中,使用 singleInstanceHandler 设置 CorrelatesWith 属性。
  3. 在 CorrelatesOn 定义中,您应该插入一个字符串,而不是 xpath 表达式。例如:“asdf”。
  4. 将相关初始化程序只保留响应的句柄。

据我了解,它第一次创建初始化与“asdf”相关的实例时,下一次收到消息时,AppFabric 会查看是否有一个实例可以与字符串“asdf”相关联,并找到一个初始化在第一次通话中。

于 2010-10-09T18:15:43.637 回答