1

我們有一個WF4工作流,其活動序列作爲WCF服務。Workflow Foundation 4不使用AppFabric的管理

CalculateTaxesActivity
CreateOrderActivity
CreditCardAuthorizationActivity
等.....

我們的管理員使用的AppFabric來管理它,恢復,取消,如果需要終止工作流程。但是我們需要將管理任務委託給倉庫,我們不希望爲運行AppFabric的服務器提供訪問權限。

有沒有通過使用框架中可用的API或類來管理工作流的方法?我們希望倉庫人員跟蹤和恢復工作流程,如果其中任何一個故障等等

回答

3

的AppFabric的UI不直接與在大多數情況下,工作流程或WorkflowServiceHost中溝通,但使用WorkflowControlEndpointWorkflowControlClient這樣做。如果你願意,你可以從你的代碼中做同樣的事情。

默認情況下,WorkflowControlEndpoint使用NetNamedPipeBinding公開自己,因此如果要接受來自另一臺計算機的請求,則需要更改該設置。

的WorkflowServiceHost中配置:

<service name="MyWorkflow「 
     behaviorConfiguration="MyWorkflowBehavior"> 
    <host> 
    <baseAddresses> 
     <add baseAddress="http://localhost:8080/MyWorkflow" /> 
    </baseAddresses> 
    </host> 
    <endpoint address="" 
      binding="basicHttpBinding" 
      contract="IMyWorkflow" /> 
    <endpoint kind="workflowControlEndpoint" 
      address="Control" 
      binding="basicHttpBinding" /> 
</service> 

客戶端代碼:

var instanceId = <<an existing workflow instanceId>>; 

var controlBinding = new BasicHttpBinding(); 
var controlAddress = 
    new EndpointAddress("http://localhost:8080/MyWorkflow/Control"); 

var proxy = new WorkflowControlClient(controlBinding, controlAddress); 

proxy.Suspend(instanceId); 
+0

謝謝!我知道這可以做到。 –

相關問題