WCF-WCF 서비스 사용

WCF 서비스를 사용하면 다른 응용 프로그램이 액세스하거나 사용할 수 있습니다. WCF 서비스는 호스팅 유형에 따라 다양한 방식으로 사용할 수 있습니다. 여기에서는 다음과 같은 인기있는 호스팅 옵션 각각에 대해 WCF 서비스를 사용하는 단계별 방법을 설명합니다.

  • IIS 5/6에서 호스팅되는 WCF 서비스 사용
  • 자체 호스팅되는 WCF 서비스 사용
  • Windows 활성화 서비스에서 호스팅되는 WCF 서비스 사용
  • Windows 서비스에서 호스팅되는 WCF 서비스 사용

IIS 5/6에서 호스팅되는 WCF 서비스 사용

IIS 5/6에서 호스팅되는 WCF 서비스 사용 프로세스는 아래에서 자세히 설명합니다. 또한 토론에는 프록시 및 콘솔 응용 프로그램을 만드는 방법이 포함됩니다.

Step 1− 서비스가 IIS에서 호스팅되면 클라이언트 응용 프로그램에서 사용해야합니다. 클라이언트 애플리케이션을 만들기 전에 서비스에 대한 프록시를 만들어야합니다. 이 프록시는 클라이언트 응용 프로그램에서 서비스와 상호 작용하는 데 사용됩니다. 프록시를 만들려면 Visual Studio 2008 명령 프롬프트를 실행합니다. 서비스 유틸리티를 사용하여 프록시 클래스와 구성 정보를 만들 수 있습니다.

svcutilhttp : //localhost/IISHostedService/Service.svc

이 명령을 실행하면 기본 위치에 두 개의 파일이 생성됩니다.

  • MyService.cs − WCF 서비스를위한 프록시 클래스

  • output.config − 서비스에 대한 구성 정보

Step 2 − 이제 Visual Studio 2008 (클라이언트 응용 프로그램)을 사용하여 콘솔 응용 프로그램 만들기를 시작합니다.

Step 3− 'System.ServiceModel'참조를 추가합니다. 이것은 WCF의 핵심 dll입니다.

Step 4 − 프록시 클래스를 생성합니다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MyServiceClient {
   Class Program {
      Static void Main(string[] args) {
         // Creating Proxy for the MyService
         ServiceClient Client = newServiceClient();
         Console.WriteLine("Client calling the service...");
         Console.WriteLine("Hello Ram");
         Console.Read();
      }
   }
}

출력은 다음과 같이 나타납니다.

자체 호스팅 WCF 서비스 사용

여기에서는 자체 호스팅 WCF 서비스를 사용하는 전체 프로세스가 필요한 경우 충분한 코딩 및 스크린 샷과 함께 단계별로 설명됩니다.

Step 1− 서비스가 호스팅되었으므로 이제 클라이언트에 대한 프록시 클래스를 구현해야합니다. 프록시를 만드는 방법에는 여러 가지가 있습니다.

  • SvcUtil.exe를 사용하여 엔드 포인트가있는 프록시 클래스와 해당 구성 파일을 만들 수 있습니다.

  • 클라이언트 애플리케이션에 서비스 참조를 추가합니다.

  • ClientBase <T> 클래스 구현

이 세 가지 방법 중 ClientBase <T>를 구현하는 것이 가장 좋습니다. 다른 두 가지 방법을 사용하는 경우 서비스 구현을 변경할 때마다 프록시 클래스를 만들어야합니다. 그러나 이것은 ClientBase <T>의 경우가 아닙니다. 런타임에만 프록시를 생성하므로 모든 것을 처리합니다.

이를 위해 System.ServiceModel 및 MyCalculatorService의 참조를 포함하는 하나의 프록시 클래스를 만듭니다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using MyCalculatorService;

namespace MyCalculatorServiceProxy {
   // WCF create proxy for ISimpleCalculator using ClientBase
   Public class MyCalculatorServiceProxy : 
   ClientBase<ISimpleCalculator>,
   
   ISimpleCalculator {
      Public int Add(int num1, int num2) {
         //Call base to do funtion
         returnbase.Channel.Add(num1, num2);
      }
   }
}

이제 System.ServiceModel 및 MyCalculatorServiceProxy의 참조를 포함하는 하나의 콘솔 응용 프로그램을 만듭니다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using MyCalculatorServiceProxy;

namespace MyCalculatorServiceClient {
   classProgram {
      Static void Main(string[] args) {
         MyCalculatorServiceProxy.MyCalculatorServiceProxy proxy = newMyCalculatorServiceProxy.MyCalculatorServiceProxy();
         
         Console.WriteLine("Client is running at " + DateTime.Now.ToString());
         Console.WriteLine("Sum of two numbers. 5 + 5 =" + proxy.Add(5,5));
         Console.ReadLine();
      }
   }
}

Step 2 − 엔드 포인트 (서비스와 동일) 정보는 클라이언트 애플리케이션의 설정 파일에 추가되어야합니다.

<?xmlversion = "1.0"encoding = "utf-8" ?>
<configuration>
   <system.serviceModel>
      <client>
         <endpoint address 
            ="http://localhost:8090/MyCalculatorServiceProxy/ISimpleCalculator"
            binding = "wsHttpBinding" contract "MyCalculatorServiceProxy.ISimpleCalculator">
            </endpoint>
      </client>
   </system.serviceModel>
</configuration>

Step 3− 클라이언트 애플리케이션을 실행하기 전에 서비스를 실행해야합니다. 아래는 클라이언트 애플리케이션의 출력입니다.

WAS에서 호스팅되는 WCF 서비스 사용

WAS에서 호스팅되는 WCF 서비스를 사용하는 것은 몇 단계만으로 이루어진 간단한 프로세스입니다. 단계는 다음과 같습니다-

  • 클라이언트 응용 프로그램에 프록시 클래스와 구성 파일을 추가합니다.
  • MathServiceClient에 대한 개체를 만들고 메서드를 호출합니다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespaceWASHostedClient {
   classProgram {
      staticvoid Main(string[] args) {
         MathServiceClient client = newMathServiceClient();
         Console.WriteLine("Sum of two number 5,6");
         Console.WriteLine(client.Add(5, 6));
         Console.ReadLine();
      }
   }
}

출력은 아래와 같이 나타납니다.

Windows 서비스에서 호스팅되는 WCF 서비스 사용

Windows 서비스에서 호스팅되는 WCF 서비스를 사용하는 방법에 대한 단계별 프로세스는 코딩 및 지침과 함께 아래에 자세히 설명되어 있습니다.

성공적으로 호스팅되면 서비스에 대한 프록시 클래스를 만들고 클라이언트 응용 프로그램에서 사용할 수 있습니다. 여기에서는 소비하는 IIS 호스팅 유형으로 표시됩니다.

ServiceModel의 참조를 추가하십시오.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespaceWindowServiceClient {
   classProgram {
      staticvoid Main(string[] args) {
         //Creating Proxy for the MyService
         MyServiceClient client = newMyServiceClient();
         Console.WriteLine("Client calling the service...");
         Console.WriteLine("Sum of two numbers 5,6");
         Console.WriteLine(client.Add(5, 6));
        
         Console.WriteLine("Subtraction of two numbers 6,5");
         Console.WriteLine(client.Sub(6, 5));
        
         Console.WriteLine("Multiplication of two numbers 6,5");
         Console.WriteLine(client.Mul(6, 5));
        
         Console.WriteLine("Division of two numbers 6,3");
         Console.WriteLine(client.Div(6, 3));
         Console.Read();
      }
   }
}

출력은 다음과 같이 나타납니다.