在 WF4 中将实例存储数据库从生产服务器复制到开发服务器的正确方法是什么?我们有一个在 AppFabric 和 IIS 上使用 Windows Workflow Foundation 4 的应用程序。我们有一台带有 SQL Server 2008 R2 的机器,它为生产环境托管我们的实例存储数据库,还有一台单独的机器,也带有 SQL Server 2008 R2,为开发环境托管我们的实例存储数据库。现在,我们需要将生产环境中的确切状态复制到开发环境中。对于简单的业务数据库,我只是要求我们的数据中心备份开发业务数据库(Oracle 服务器),然后将开发业务数据库完全替换为生产数据库的副本(也是单独的机器)。
但事实证明它没有。复制后,在开发环境中运行应用程序,每当它尝试恢复实例书签或调用作为已启动工作流的一部分的实例操作时,我们都会在具有标识符的服务实例上获得“操作”[操作名称]' [guid]' 目前无法执行。请确保操作以正确的顺序执行,并且使用中的绑定提供有序交付保证”异常消息。
另一方面,如果我们开始一个新的工作流程,它可以正常工作并且可以毫无问题地持续到最后。通过简要查看 System.Activities.DurableInstancing.InstancesTable,在我看来,在复制之后,无法正确识别以前的工作流实例,并且 WF4 尝试启动新实例,这导致“操作顺序不正确”事物。例如,这些新创建的实例的 ServiceDeploymentId id 与从生产中复制的实例中的不同。但我对 WF4 的经验真的很少,而且对发生的事情几乎一无所知。(在创建这篇文章之前,我确实从 StackExchange 和其他来源搜索了答案。)
我们如何创建生产 WF4 实例存储的副本,一旦在我们的开发服务器中,将在开发环境中与我们的应用程序一起使用,因为它具有与生产相同的应用程序状态?谢谢。
请帮忙(2013 年 9 月 10 日)
再一次问好。我想知道为什么到目前为止还没有对这篇文章的评论。事实上,使用生产环境中的数据更新开发或 QA 环境中的数据是很常见的事情。而且我几乎可以肯定,WF4 工作流程也会定期以某种方式完成这项工作。这是将 WF4 工作流的状态从一个数据库服务器(生产)复制到另一个数据库服务器(QA 或开发)的问题,以便在 QA 或开发环境中运行的应用程序可以“获得”与生产服务器相同的应用程序状态,从那里可以继续推进和使用从生产中复制的工作流程,但在其自己的环境中,无缝。拜托,如果有人这样做了,或者知道怎么做,并且很乐意阐明这个问题,这将不胜感激。谢谢并恭祝安康。