1

우리는 WCF 서비스로서 활동 순서가있는 WF4 워크 플로를 가지고 있습니다.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

감사합니다! 나는 이것이 가능하다는 것을 알았다. –

관련 문제