有关 这个问题.

我的理解如何实现版本的工作流程使用 WorkflowApplication.如果你保持原XAML定义的旧版本的工作流程周围,你可以载入他们使用正确的 WorkflowApplication 构造。

你怎能确保 WorkflowServiceHost 使用正确的工作流程定义的时候你想到东道你的工作流程IIS?

还有一个 WorkflowServiceHost 构造你可以用它来负荷工作流程定义,但是当你是主持的内部IIS通过XAMLX文件,你不要叫 WorkflowServiceHost 你自己,这是处理某种方式通过IIS。那么,如何确保正确的工作流程定义是载于正确版本的我的工作?

有帮助吗?

解决方案

该方法使用WorkflowServiceHost是不是所有不同的形式使用WorkflowApplication.基本保持各种XAML(X)版本仍然适用。所以在该情况下WorkflowServiceHost你需要创建多个WorkflowServiceHost的每个举办一个不同版本的你XAMLX.每一个不同的终点。所以基本上是一个终端连接这两个地址的工作流服务和其版本。

因此,如何得到的消息,从客户到正确的WorkflowServiceHost?这里WCF路由服务是你的朋友。而不是具有客户直接沟通与你WorkflowServiceHost他们使用中间WCF路由服务。这反过来检查信息并将它们的WorkflowServiceHost举办适当的XAMLX文件。那么它是怎样知道的。有几种方法来这样做。例如做一个数据库查找使用信息的相关性标识要求新的工作流程始终走向最后一个版本。最简单的方法是有的工作流程服务返回的一个版本的数量作为一部分的初步请求,并使这一要求的一部分,每个后续请求。这种方式WCF路由服务可以做所有其作用仅仅是信息数据发送。

这方面的一个例子是:

  1. 客户发送消息开始一个新的工作流程使用了Id7和接收3版后面。客户应用程序使用URL httl://localhost/MyWorkflow.反馈的路由服务转发给httl://localhost/MyWorkflow.v3。xamlx这是最后一个版本。
  2. 下一个消息发送工作流程包含两个订单id并版本3。客户应用程序使用URL httl://localhost/MyWorkflow.反馈的路由服务转发给httl://localhost/MyWorkflow.v3。xamlx其是指出版。
  3. 客户程序要发送信息到一个旧的工作流程。它使用订单id2和1版(回答时这种工作流程已开始)。客户应用程序使用URL httl://localhost/MyWorkflow.反馈的路由服务转发给httl://localhost/MyWorkflow.v1。xamlx其是该版本incicated.

检查 这些 截屏更多的信息,关于WCF路由服务。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top