방법: SOAP 및 웹 클라이언트에 계약 공개

기본적으로 WCF(Windows Communication Foundation)에서는 SOAP 클라이언트에 대해서만 끝점을 사용할 수 있도록 합니다. 방법: 기본 웹 스타일 서비스 만들기에서 비 SOAP 클라이언트에 끝점을 사용할 수 있습니다. 동일한 계약을 웹 끝점 및 SOAP 끝점으로 모두 사용해야 하는 경우가 있습니다. 이 항목에서는 이 작업을 수행하는 방법을 보여 줍니다.

서비스 계약을 정의하려면

  1. ServiceContractAttribute, WebInvokeAttributeWebGetAttribute 특성으로 표시된 인터페이스를 사용하여 서비스 계약을 정의합니다.

    참고

    기본적으로 WebInvokeAttribute는 POST 호출을 작업에 매핑합니다. 그러나 "method=" 매개 변수를 지정하여 작업에 매핑할 메서드를 지정할 수 있습니다. WebGetAttribute에는 "method=" 매개 변수가 없고 GET 호출만 서비스 작업에 매핑합니다.

  2. 서비스 계약을 구현합니다.

서비스를 호스팅하려면

  1. ServiceHost 개체를 만듭니다.

  2. BasicHttpBinding을 사용하여 SOAP 끝점에 대해 ServiceEndpoint를 추가합니다.

  3. WebHttpBinding을 사용하여 비 SOAP 끝점에 대해 ServiceEndpoint를 추가하고 WebHttpBehavior를 끝점에 추가합니다.

  4. ServiceHost 인스턴스에서 Open()을 호출하여 서비스 호스트를 엽니다.

Internet Explorer에서 GET에 매핑된 서비스 작업을 호출하려면

  1. Internet Explorer를 열고 "https://localhost:8000/EchoWithGet?s=Hello, world!"를 입력한 후 Enter 키를 누릅니다. URL에는 서비스 기본 주소("https://localhost:8000/"), 끝점 상대 주소(""), 호출할 서비스 작업("EchoWithGet") 및 앰퍼샌드(&)로 구분된 명명된 매개 변수의 목록 앞에 있는 물음표가 포함됩니다.

코드의 웹 끝점에서 서비스 작업을 호출하려면

  1. using 블록 내에서 WebChannelFactory 인스턴스를 만듭니다.

참고

Close()는 using 블록의 끝에 있는 채널에서 자동으로 호출됩니다.

  1. 채널을 만들고 서비스를 호출합니다.

SOAP 끝점에서 서비스 작업을 호출하려면

  1. using 블록 내에서 ChannelFactory 인스턴스를 만듭니다.

  2. 채널을 만들고 서비스를 호출합니다.

서비스 호스트를 닫으려면

  1. 서비스 호스트를 닫습니다.

예제

다음은 이 항목에 해당되는 전체 코드 목록입니다.

코드 컴파일

Service.cs를 컴파일할 때 System.ServiceModel.dll 및 System.ServiceModel.Web.dll을 참조합니다.

참고 항목

참조

WebHttpBinding
WebGetAttribute
WebInvokeAttribute
WebServiceHost
ChannelFactory
WebHttpBehavior