WorkflowPersistenceService 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
注意
The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*
从中派生所有持久性服务的抽象基类。
public ref class WorkflowPersistenceService abstract : System::Workflow::Runtime::Hosting::WorkflowRuntimeService
public abstract class WorkflowPersistenceService : System.Workflow.Runtime.Hosting.WorkflowRuntimeService
[System.Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
public abstract class WorkflowPersistenceService : System.Workflow.Runtime.Hosting.WorkflowRuntimeService
type WorkflowPersistenceService = class
inherit WorkflowRuntimeService
[<System.Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")>]
type WorkflowPersistenceService = class
inherit WorkflowRuntimeService
Public MustInherit Class WorkflowPersistenceService
Inherits WorkflowRuntimeService
- 继承
- 派生
- 属性
注解
注意
本材料讨论的类型和命名空间已废弃不用。 有关详细信息,请参阅 Windows Workflow Foundation 4.5 中弃用的类型。
在工作流运行过程中发生特定情况时,工作流运行时引擎将保留有关工作流实例的状态信息。 例如,在原子事务完成时、工作流实例进入空闲状态时、主机对工作流实例调用 WorkflowInstance.Unload 时或工作流实例终止或完成时,会执行保留操作。 当工作流运行时引擎语义指示应执行保留操作时,工作流运行时引擎将调用由持久性服务提供的方法,保存有关工作流实例的状态信息。 同样,当工作流运行时引擎需要还原以前保留的工作流实例时,会调用由持久性服务提供的方法来加载此状态信息。 工作流运行时引擎处理所有关于何时执行保留操作的语义。 持久性服务处理将工作流状态信息实际保存到数据存储区中以及从数据存储区中实际加载该信息的操作。
可以通过从 WorkflowPersistenceService 类派生一个类来创建持久性服务。 通过调用 AddService 或在应用程序配置文件中添加合适的项,可以将持久性服务添加到工作流运行时引擎。 WorkflowRuntime 应只包含一个持久性服务。 Windows Workflow Foundation 提供了 SqlWorkflowPersistenceService 类,这是一种全新的持久性服务,可以按原样使用或对其进行扩展。
工作流运行时引擎具有锁定工作流状态信息的语义,当其他进程上运行的持久性服务有权访问单个数据存储区时,可以使用该语义。 通过为 WorkflowPersistenceService 提供指定是否应在数据存储区中解锁工作流实例状态信息的参数,并提供将先前锁定的工作流状态信息解锁的方法 SaveWorkflowInstanceState,UnlockWorkflowInstanceState 类提供了支持此工作流运行时引擎功能的能力。 在实现锁定的持久性服务中,对 LoadWorkflowInstanceState 的调用将锁定工作流实例的状态信息。
如果持久性服务无法将状态信息保存到其数据存储区,或者无法从其数据存储区加载状态信息,则应引发 PersistenceException。 工作流运行时引擎需要此行为。
为使用持久性存储区来保存工作流状态信息的服务提供了批处理机制。 在这种情况下,在持久性服务使用的持久性存储区与工作流运行时引擎内部状态之间保持一致十分重要。 可以将 IPendingWork 接口定义的功能添加到服务中,然后通过将对数据存储区的更改作为工作项添加到 WorkflowCommitWorkBatchService 中,来参与 WorkBatch 提供的工作流事务批处理。 持久存储区自身应实现 IEnlistmentNotification 接口,以便在事务回滚时正确保留工作流信息。 有关详细信息,请参阅SaveCompletedContextActivity或SaveWorkflowInstanceState。
构造函数
WorkflowPersistenceService() |
已过时.
在派生类中实现时,初始化 WorkflowPersistenceService 类的新实例。 |
属性
Runtime |
已过时.
获取此服务的 WorkflowRuntime。 (继承自 WorkflowRuntimeService) |
State |
已过时.
获取 WorkflowRuntimeService 的状态。 (继承自 WorkflowRuntimeService) |