【发布时间】:2011-02-23 19:39:51
【问题描述】:
我的情况如下: 工作流 XAML 存储在数据库中,然后我从中创建 WorkflowServiceHost 并且客户端可以调用它。在此之前没问题:我在端点 1 有 XAML1。
稍后用户更改 xaml。据我从其他问题中了解到,解决方案是保留 XAML1,并存储新的 XAML2,并启动一个新的 WorkflowServiceHost。 所以最终得到了 XAML1/XAML2 的端点 1/端点 2,客户端可以决定以某种方式调用哪个。
最后我的问题是,有没有办法以某种方式检测第一个 WorkflowServiceHost 内部没有挂起的实例?我的意思是所有工作流程都在内部完成,您可以安全地处置该服务主机。
在最坏的情况下,我可能会使用自定义跟踪参与者来记录实例是否正在运行,但也许还有其他方式......
// activity comes from xaml
var jobHost = new WorkflowServiceHost(activity, new Uri("net.pipe://localhost/WorkflowHost"));
jobHost.AddServiceEndpoint("IWorkflowHost", new System.ServiceModel.NetNamedPipeBinding(), "Job1");
// extensions
// behaviors
jobHost.Description.Behaviors.Add(_instanceStore);
jobHost.Open();
【问题讨论】:
标签: .net workflow-foundation workflow-foundation-4