방법: SOAP 및 웹 클라이언트에 계약 공개
기본적으로 WCF(Windows Communication Foundation)에서는 SOAP 클라이언트에 대해서만 끝점을 사용할 수 있도록 합니다. 방법: 기본 웹 스타일 서비스 만들기에서 비 SOAP 클라이언트에 끝점을 사용할 수 있습니다. 동일한 계약을 웹 끝점 및 SOAP 끝점으로 모두 사용해야 하는 경우가 있습니다. 이 항목에서는 이 작업을 수행하는 방법을 보여 줍니다.
서비스 계약을 정의하려면
ServiceContractAttribute, WebInvokeAttribute 및 WebGetAttribute 특성으로 표시된 인터페이스를 사용하여 서비스 계약을 정의합니다.
참고
기본적으로 WebInvokeAttribute는 POST 호출을 작업에 매핑합니다. 그러나 "method=" 매개 변수를 지정하여 작업에 매핑할 메서드를 지정할 수 있습니다. WebGetAttribute에는 "method=" 매개 변수가 없고 GET 호출만 서비스 작업에 매핑합니다.
서비스 계약을 구현합니다.
서비스를 호스팅하려면
ServiceHost 개체를 만듭니다.
BasicHttpBinding을 사용하여 SOAP 끝점에 대해 ServiceEndpoint를 추가합니다.
WebHttpBinding을 사용하여 비 SOAP 끝점에 대해 ServiceEndpoint를 추가하고 WebHttpBehavior를 끝점에 추가합니다.
ServiceHost 인스턴스에서 Open()을 호출하여 서비스 호스트를 엽니다.
Internet Explorer에서 GET에 매핑된 서비스 작업을 호출하려면
- Internet Explorer를 열고 "https://localhost:8000/EchoWithGet?s=Hello, world!"를 입력한 후 Enter 키를 누릅니다. URL에는 서비스 기본 주소("https://localhost:8000/"), 끝점 상대 주소(""), 호출할 서비스 작업("EchoWithGet") 및 앰퍼샌드(&)로 구분된 명명된 매개 변수의 목록 앞에 있는 물음표가 포함됩니다.
코드의 웹 끝점에서 서비스 작업을 호출하려면
using
블록 내에서 WebChannelFactory 인스턴스를 만듭니다.
참고
Close()는 using
블록의 끝에 있는 채널에서 자동으로 호출됩니다.
- 채널을 만들고 서비스를 호출합니다.
SOAP 끝점에서 서비스 작업을 호출하려면
using
블록 내에서 ChannelFactory 인스턴스를 만듭니다.채널을 만들고 서비스를 호출합니다.
서비스 호스트를 닫으려면
- 서비스 호스트를 닫습니다.
예제
다음은 이 항목에 해당되는 전체 코드 목록입니다.
코드 컴파일
Service.cs를 컴파일할 때 System.ServiceModel.dll 및 System.ServiceModel.Web.dll을 참조합니다.
참고 항목
참조
WebHttpBinding
WebGetAttribute
WebInvokeAttribute
WebServiceHost
ChannelFactory
WebHttpBehavior