SelfHost 샘플은 콘솔 애플리케이션에서 자체 호스팅 서비스를 구현하는 방법을 보여 줍니다. 이 샘플은 시작 안내에 기반으로 합니다. 서비스 구성 파일의 이름이 Web.config App.config 변경되었으며 호스트에서 사용하는 기본 주소를 구성하도록 수정되었습니다. 서비스 소스 코드는 구성된 기본 주소를 제공하는 서비스 호스트를 만들고 여는 정적 Main
함수를 구현하도록 수정되었습니다. 서비스 구현은 각 작업에 대한 출력을 콘솔에 쓰도록 수정되었습니다. 서비스의 올바른 엔드포인트 주소를 구성하는 것을 제외하고는 클라이언트가 수정되지 않았습니다.
비고
이 샘플에 대한 설치 절차 및 빌드 지침은 이 항목의 끝에 있습니다.
이 샘플은 다음 샘플 코드에 보여진 대로 지정된 ServiceHost 형식에 대해 CalculatorService
를 생성하는 정적 main 함수를 구현합니다.
// Host the service within this EXE console application.
public static void Main()
{
// Create a ServiceHost for the CalculatorService type.
using (ServiceHost serviceHost =
new ServiceHost(typeof(CalculatorService)))
{
// Open the ServiceHost to create listeners
// and start listening for messages.
serviceHost.Open();
// The service can now be accessed.
Console.WriteLine("The service is ready.");
Console.WriteLine("Press <ENTER> to terminate service.");
Console.WriteLine();
Console.ReadLine();
}
}
서비스가 IIS(인터넷 정보 서비스) 또는 WAS(Windows Process Activation Service)에서 호스트되는 경우 서비스의 기본 주소는 호스팅 환경에서 제공됩니다. 자체 호스팅 사례에서 기본 주소를 직접 지정해야 합니다. 이 작업은 다음 샘플 구성에서 add
<> 요소를 사용하여 수행됩니다.
<service
name="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/ServiceModelSamples/service"/>
</baseAddresses>
</host>
...
</service>
샘플을 실행하면 작업 요청 및 응답이 서비스 및 클라이언트 콘솔 창 모두에 표시됩니다. 각 콘솔 창에서 Enter 키를 눌러 서비스 및 클라이언트를 종료합니다.
샘플을 설정, 빌드 및 실행하려면
Windows Communication Foundation 샘플 에 대한One-Time 설정 절차를 수행했는지 확인합니다.
솔루션의 C# 또는 Visual Basic .NET 버전을 빌드하려면 Windows Communication Foundation 샘플빌드의 지침을 따릅니다.
단일 또는 컴퓨터 간 구성에서 샘플을 실행하려면 Windows Communication Foundation 샘플 실행의 지침을 따릅니다.