2011-10-31 3 views
0

간단한 워크 플로 서비스 응용 프로그램 (WF1)을 만든 다음 다른 워크 플로 작업 (WF2)을 사용하여 솔루션에 Windows Forms 클라이언트를 추가했습니다. 그런 다음 적절한 서비스 참조를 WF1에 추가했습니다. 서비스 참조를 사용하여 WF2 (Windows Forms)에서 WF1 (워크 플로 서비스 응용 프로그램)으로 메시지 호출을 추가하려고 할 때 ... 내 서비스 참조 WF1을 나타내는 도구 상자의 항목을 insn't! 그것은 없습니다. 그것을 추가하려고하는 행운이 없다. .. 나는 길을 잃는다. 어떤 아이디어?도구 상자에 Windows Workflow 4.0 서비스 참조가 나타나지 않습니다.

+0

도구 상자를 마우스 오른쪽 버튼으로 클릭하고 WF1을 찾아서 "Chosse Items ..."를 사용해 보셨습니까? –

+0

예, 어셈블리를 선택하면 유효하지 않음을 알립니다. – sdgian

+0

당신은 무엇을하려고하는지 조금 더 설명해 주실 수 있습니까? WorkflowServices를 작성하고 싶지만 다른 Workflow의 Activity로 WorkflowService를 사용하려는 이유를 이해하지 못합니다. WorkflowService를 테스트 하시겠습니까? WCF를 WCF 서비스로 사용하는 대신 서비스 참조를 winForm 클라이언트에 추가하고 WorkflowService를 WCF 서비스로 사용하면 더 좋지 않을까요? 나는 그저 당신이해야 할 일이라고 생각하고 있습니다. –

답변

0

위의 두 번째 의견을 바탕으로 비디오를보고 난 후에도 비디오가 보여주는 것과 같은 방법으로 다른 워크 플로우 내에서 WorkflowService를 활동으로 사용하려고하지 않아도된다고 생각합니다. 동영상에서 그는 서비스 작업 중 하나에 대해서만 전화를 걸고 있음을 알고 있습니다. 워크 플로 콘솔 템플릿 프로젝트를 사용하면 Activity에서 작업을 래핑하여 쉽게 서비스 작업을 호출 할 수 있으므로 프록시 클라이언트를 인스턴스화하지 않아도됩니다. 동일한 결과를 얻는 다른 방법이 있습니다.

내가하는 일 : WinForms 클라이언트의 서비스 참조를 WorkflowServiceApp, WF1에 추가하십시오 (이미 완료했습니다). 두 번째 워크 플로 (WF2)에서는 워크 플로 내에 있지 않은 경우 일반 서비스 작업을 호출하는 것처럼 WF1 형식의 프록시를 인스턴스화하고 서비스가 직접 제공하는 작업을 호출합니다. 기본적으로 WCF 서비스를 사용합니다. 하나의 옵션은 서비스 유형의 변수를 생성하고, 예를 들어 Assign 활동에서 새로운 참조를 인스턴스화하고, 서비스 결과 유형의 변수를 작성한 다음 마지막으로 서비스를 호출하는 것입니다 다른 Assign 또는 InvokeMethod 활동에서.

먼저 할당 활동

proxy = New WF1Client() //That has to be the name of you client as created by the Service Reference 

두 번째 할당 활동

Result = proxy.MyMethod(...) //The call to the operation. You would have to create the variables to hold the result and any input parameters you wish to pass to the operation. 

정직 할 것이다. 서비스 자체를 활동으로 사용할 필요가 없습니다.

디자이너 내부에서 사용하거나 다른 워크 플로간에 공유 할 수있는 하나의 활동으로 만들려면 Code Activity을 만들고 서비스 작업을 호출하고 (프록시 인스턴스 생성, 입력 설정 등) 컴파일하고 도구 상자에 코드 활동이 나타나 WF2에서 사용할 수 있습니다. 또한 ClassLibrary를 만들고 WF 또는 custom activities과 함께 제공되는 활동을 구현하는 경우 ClassLibrary를 참조하여 다른 워크 플로 프로젝트에서 다시 사용할 수 있습니다. WF1의 개발을 제어 할 수 있다면이 접근법을 사용하여 활동을 재사용 할 수 있습니다.

희망이 도움이됩니다.

+0

정말 고맙습니다. 또한 VS2010과 함께 제공되는 메시징 활동을 사용할 수 있으며 다른 어떤 웹 서비스와 마찬가지로 서비스를 호출 할 수 있습니까? – sdgian

+0

예. 메시징 활동을 통해 워크 플로를 WCF 서비스로 공개 할 수 있습니다. Receive 활동은 서비스 작업이있는 WCF 서비스 계약과 같습니다 ([1] (http://social.msdn.microsoft.com/Forums/en-AU/wfprerelease/thread/a077a156-bd06-438b-9b90-ec1024b12165)) 따라서 다른 일반적인 WCF 서비스처럼 사용할 수있는 WCF 서비스에서 WorkflowService를 사용합니다. –

관련 문제