为什么AppFabric中的简历暂停工作流会出错?

时间:2012-04-12 11:31:42

标签: c# workflow-foundation-4 appfabric

我正在使用Windows Server AppFabric运行几个WF 4服务。有时,工作流中会发生未处理的异常并将其放弃(如果对未处理的异常的操作设置为“放弃”)或暂停(如果操作设置为“放弃并暂停”)。

在“放弃”的情况下,工作流在异常后仍然是“正在运行(活动)”,我希望AppFabric WorkflowManagementService能够自动从上一个持久点继续工作流。

在“放弃和暂停”的情况下,我鼓励能够通过AppFabric仪表板手动恢复工作流程。

在任何一种情况下,都不会发生这种情况,但我在AppFabric Dashboard和Windows事件查看器中获得了各种错误和警告消息(Windows - > Application Server-System Services - > Admin):

错误:

  

无法在'net.pipe://jon-hp/Afis.Workflow/ServiceManagement.svc'调用服务管理端点以激活服务'/Afis.Workflow/ATP.xamlx'.\rException:'打开操作没有在00:01:00分配的超时内完成。分配给此操作的时间可能是较长超时的一部分。'

错误:

  

无法通过控制端点net.pipe恢复实例d626005a-63bd-4ab1-8192-62616755015c://jon-hp/Afis.Workflow/ATP.xamlx/System.ServiceModel.Activities_IWorkflowInstanceManagement。\ rException:System.TimeoutException:打开操作未在分配的00:01:00超时内完成。分配给此操作的时间可能是较长超时的一部分。   内在例外:   System.TimeoutException:管道连接已中止,因为管道的异步读取未在分配的超时00:00:59.9989999内完成。分配给此操作的时间可能是较长超时的一部分。   内在例外:   System.IO.PipeException:由于管道已关闭,因此无法完成操作。这可能是由管道另一端的应用程序退出引起的。

警告(每20分钟定期一次)

  

WMS无法激活任何主机 - 退出。存储名称'defaultSqlPersistenceStore'('Root)。

为我的网站和应用程序启用了Net.pipe,我可以看到IIS管理器中列出的管理端点 - >端点 - >删除过滤器(System.ServiceModel.Activities.IWorkflowInstanceManagement)。

我的应用程序端点正在运行带有传输安全性和Windows身份验证的net.tcp。

这个帖子似乎有关系,但我没有设法解决我的问题: http://social.msdn.microsoft.com/Forums/en/dublin/thread/e1705e89-34cc-4526-b11e-9d67d66c403d

编辑1:我的方案涉及客户端调用工作流A,它进行一些处理,然后继续并返回。然后,工作流A调用工作流B,工作流B立即抛出异常。工作流程A没有捕获到这个,并且被放弃,但仍然从其上一个持久性点开始运行(活动)。工作流B也被放弃但尚未保留,因此获取状态Running(Idle),等待来自工作流A的消息。

然后我希望工作流程A自动恢复并再次调用工作流程B,但这不会发生。

编辑2:我在事件日志中得到的错误类型似乎不一致。在期间,我没有得到任何错误,但我也看到了(除了上面的那些):

Failed to Resume instance 032274d1-b6e6-4163-a33a-73bffc8da2cc via control endpoint net.pipe://jon-hp/Afis.Workflow/ATP.xamlx/System.ServiceModel.Activities_IWorkflowInstanceManagement.\rException: System.ServiceModel.FaultException: The execution of an InstancePersistenceCommand was interrupted because the instance '032274d1-b6e6-4163-a33a-73bffc8da2cc' has not yet been persisted to the instance store..

Failed to Resume instance d2b19a41-985e-4dc4-8fd1-955df2cde243 via control endpoint net.pipe://jon-hp/Afis.Workflow/Import.xamlx/System.ServiceModel.Activities_IWorkflowInstanceManagement.\rException: System.ServiceModel.FaultException: The execution of the InstancePersistenceCommand named {urn:schemas-microsoft-com:System.Activities.Persistence/command}LoadWorkflow was interrupted by an error..

Failed to invoke service management endpoint at 'net.pipe://jon-hp/Afis.Workflow/ServiceManagement.svc' to activate service '/Afis.Workflow/ATP.xamlx'.\rException: 'There was an error reading from the pipe: Unrecognized error 109 (0x6d).'

1 个答案:

答案 0 :(得分:0)

您是否通过任何更改都对工作流程定义进行了更改?如果WF4无法处理,则该功能将添加到WF4.5。

此外,我还会在服务器上启用WCF跟踪,以查看是否有更多详细信息。通常会记录真正的原始异常,但不会传播到客户端。