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();
}
}
}
출력은 다음과 같이 나타납니다.