我想使用 Windows Workflow Foundation 4.5 并通过 web api 触发工作流。既然 MS 将终止 AppFabric 支持,我有哪些托管选项?我什至应该使用 Windows Workflow Foundation 还是应该研究第 3 方解决方案?
这是内部部署,我无法使用 azure。我已经完成了一些工作流程,似乎 WWF 不难使用,但不清楚如何托管它。我可以在没有 AppFabric 的情况下在 Web api 项目中托管吗?
如果 IIS 应用程序池使用 WorkflowApplication 回收或服务器崩溃,我主要关心的是能否恢复工作流。我没有使用 WCF 我计划在 web api 中使用 WorkflowApplication。
谁能指出我在实现 AppFabric 负责的自定义功能方面的正确方向?恢复、记录等。
来自 MS:将 IIS 与 AppFabric 结合使用是工作流的首选主机。使用 AppFabric 的工作流的宿主应用程序是 Windows 激活服务,它消除了对 HTTP over IIS 的依赖
IIS 7.0 出于各种原因定期回收应用程序池。当应用程序池被回收时,IIS 停止接受旧池的消息,并实例化一个新的应用程序池以接受新的请求。如果工作流在发送响应后继续工作,IIS 7.0 将不会意识到正在完成的工作,并且可能会回收托管应用程序池。如果发生这种情况,工作流将中止,并且跟踪服务将记录一个 1004 - WorkflowInstanceAborted 消息,其中包含一个空的原因字段。
如果使用持久性,主机必须从最后一个持久性点显式重新启动中止的实例。
如果使用了 AppFabric,工作流管理服务最终会从最后一个成功的持久化点恢复工作流(如果使用了持久化)。如果不使用持久性,并且工作流执行请求/响应模式之外的操作,则工作流中止时数据将丢失。