다음을 통해 공유


Calculator Client 샘플

계산기 클라이언트 응용 프로그램은 계산기 상태 시스템 서비스나 영속 계산기 서비스로 작업을 보내는 데 사용할 수 있는 WPF(Windows Presentation Foundation)를 기반으로 하는 응용 프로그램입니다. 계산기 서비스는 쿠키를 사용하는 WSHttpContextBinding 또는 WsHttpBinding 바인딩과 같은 다른 프로토콜에서 사용할 수 있습니다. 바인딩을 전환하고 동일한 워크플로 서비스 인스턴스와 계속 통신할 수 있습니다.

참고

이 샘플을 빌드하고 실행하려면 .NET Framework 버전 3.5가 설치되어 있어야 하며 프로젝트 및 솔루션 파일을 열려면 Visual Studio 2008이 필요합니다.

또한 계산기를 켜고 작업을 수행한 다음 계산기를 끄지 않고 계산기 응용 프로그램을 닫을 수 있습니다. 그런 다음 계산기를 켜면 계산기에서 이전에 통신한 워크플로 인스턴스와 계속 통신합니다. 컨텍스트는 Context.ctx라는 파일에 저장되고 이 파일은 계산기 클라이언트 응용 프로그램의 \bin 디렉터리에 저장됩니다. 계산기 클라이언트 응용 프로그램을 다시 시작하려면 Client.ctx 파일을 삭제할 수 있습니다.

이 샘플 설정에 대한 자세한 내용은 Windows Communication Foundation 샘플의 일회 설치 절차를 참조하십시오.

다음 코드에서는 ICalculator 서비스 계약을 보여 줍니다.

[ServiceContract(Namespace = "http://Microsoft.WorkflowServices.Samples")]
public interface ICalculator
{
    [OperationContract()]
    int PowerOn();
    [OperationContract()]
    int Add(int value);
    [OperationContract()]
    int Subtract(int value);
    [OperationContract()]
    int Multiply(int value);
    [OperationContract()]
    int Divide(int value);
    [OperationContract()]
    void PowerOff();
}  

계산기를 설치하려면

  1. State Machine Workflow Service 샘플 또는 영속 서비스이 각 샘플의 지침에 따라 IIS(Internet Information Services) 6.0 에서 호스팅되는지 확인합니다. 설치되는 서비스의 %systemdrive%\intetpub\wwwroot\ServiceModelSamples 디렉터리에는 Service.svc 및 Web.config 파일이 있습니다. Service.dll 파일은 %systemdrive%\intetpub\wwwroot\ServiceModelSamples\bin 디렉터리에 있습니다.

  2. CalculatorClient 및 WorkflowServiceUtility 폴더가 같은 부모 폴더에 저장되도록 워크플로 서비스 유틸리티을 다운로드하여 저장합니다.

  3. 워크플로 서비스 참조를 올바르게 만듭니다. 솔루션을 열 때 정의되어 있지 않으면 참조를 다시 만듭니다. 브라우저에서 적합한 https://localhost/ServiceModelSamples/service.svc 주소로 가리켜 상태 시스템 워크플로 서비스나 영속 계산기 서비스의 WSDL(Web Services Descriptor Language)을 확인할 수도 있습니다. WSDL을 보려면 https://localhost/ServiceModelSamples/service.svc?wsdl을 가리킵니다.

  4. 계산기 클라이언트에서는 대화를 다시 시작할 때 서비스가 계속 실행되도록 상태를 유지하면서 서비스와 통신하는 방법을 보여 줍니다. 계산기를 사용하려면 숫자와 수행할 연산을 입력합니다. 계산기 클라이언트에서 통신하는 서비스에서는 마지막 연산의 결과를 사용하여 지정된 연산을 수행합니다. 시작할 때 마지막 연산의 결과는 0입니다. 예를 들어 계산기 클라이언트를 시작하고 숫자 2를 입력한 다음 더하기 연산(+)을 입력하면 서비스에서 마지막 연산 결과(이 경우 0)에 2를 더합니다. 그러면 계산기에 결과(2)가 표시됩니다. 그런 다음 3을 입력하고 더하기 연산(+)을 입력하면 마지막 연산 결과(2)에 숫자 3이 더해져 결과는 5가 됩니다. 등호 기호(=)를 입력하면 마지막 연산 결과에 0을 더합니다. 위 예제에서 숫자 2를 입력한 다음 등호 기호를 입력하면 계산기에서는 마지막 연산 결과(5)에 0을 더하여 5를 반환합니다.

  5. 클라이언트를 종료했다가 다시 시작하면 마지막 연산 결과가 계산기에 표시됩니다. 해당 지점부터 연산을 계속 수행할 수 있습니다.

  6. 계산기 클라이언트는 처음으로 호출되면 Client.ctx 텍스트 파일을 사용하여 영속적인 위치(이 경우 샘플의 \bin 디렉터리)에 컨텍스트를 저장합니다. 클라이언트를 다시 열면 클라이언트에서 파일이 있는지 여부를 확인합니다. 파일이 있으면 클라이언트는 저장된 컨텍스트를 만들려는 채널에 적용합니다. 워크플로 서비스가 완료된 경우 \bin 디렉터리에 남아 있는 Context.ctx 파일로 클라이언트를 열면 계산기 클라이언트에서 채널에 컨텍스트를 적용하려고 합니다. 그러면 통신하려는 워크플로 인스턴스가 없기 때문에 오류가 발생합니다. 파일을 삭제하고 다시 시도합니다.

Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.