SOAP 및 HTTP 엔드포인트
SoapAndHttpEndpoints 샘플은 RPC 기반 서비스를 구현하고 WCF 웹 프로그래밍 모델을 사용하여 SOAP 형식 및 POX("Plain Old XML") 형식으로 노출하는 방법을 보여 줍니다. 서비스의 HTTP 바인딩에 대한 자세한 내용은 기본 HTTP 서비스 샘플을 참조하세요. 이 샘플에서는 서로 다른 바인딩을 사용하는 SOAP 및 HTTP를 통해 동일한 서비스를 노출하는 데 관련된 세부 정보를 중점적으로 다룹니다.
시연
WCF를 사용하여 SOAP 및 HTTP를 통한 RPC 서비스 노출
토론(Discussion)
이 샘플은 WCF 서비스가 포함된 웹 애플리케이션 프로젝트(Service)와 SOAP 및 HTTP 바인딩을 사용하여 서비스 작업을 호출하는 콘솔 애플리케이션(Client)의 두 구성 요소로 구성되어 있습니다.
WCF 서비스는 입력으로 전달된 문자열을 반향하는 2개의 작업(GetData
및 PutData
)을 노출합니다. 서비스 작업에는 WebGetAttribute 및WebInvokeAttribute를 주석으로 답니다. 이러한 특성은 해당 작업의 HTTP 프로젝션을 제어합니다. 또한 서비스 작업에는 SOAP 바인딩을 통해 노출되도록 설정하는 OperationContractAttribute를 주석으로 답니다. 서비스의 PutData
메서드는 WebFaultException을 throw하며, 이 예외는 HTTP 상태 코드를 사용하여 HTTP를 통해 다시 보내지고 SOAP을 통해 SOAP 오류로 다시 보내집니다.
Web.config 파일은 3개의 엔드포인트로 WCF 서비스를 구성합니다.
SOAP 기반 클라이언트에서 액세스할 수 있도록 서비스 메타데이터를 노출하는 ~/service.svc/mex 엔드포인트
클라이언트가 HTTP 바인딩을 사용하여 서비스에 액세스할 수 있도록 하는 ~/service.svc/http 엔드포인트
클라이언트가 SOAP 및 HTTP 바인딩을 사용하여 서비스에 액세스할 수 있도록 하는 ~/service.svc/soap 엔드포인트
HTTP 엔드포인트는 helpEnabled
가 true
로 설정된 <webHttp>
표준 엔드포인트를 사용하여 구성됩니다. 따라서 서비스에서는 HTTP 기반 클라이언트가 서비스에 액세스하는 데 사용할 수 있는 XHTML 기반 도움말 페이지를 ~/service.svc/http/help에 노출합니다.
클라이언트 프로젝트에서는 서비스 참조 추가를 통해 생성되는 SOAP 프록시를 사용하여 서비스에 액세스하고 WebClient를 사용하여 서비스에 액세스하는 방법을 보여 줍니다.
이 샘플은 웹 호스팅 서비스와 콘솔 애플리케이션으로 구성되어 있습니다. 콘솔 애플리케이션이 실행되면 클라이언트에서는 서비스로 요청을 보내고 응답의 관련 정보를 콘솔 창에 씁니다.
이 샘플을 실행하려면
SOAP and HTTP Endpoints 샘플의 솔루션을 엽니다.
Ctrl+Shift+B를 눌러 솔루션을 빌드합니다.
솔루션 탐색기 창이 아직 열려 있지 않은 경우 Ctrl+W, S를 눌러 엽니다.
솔루션 탐색기 창에서 Service 프로젝트를 마우스 오른쪽 단추로 클릭하고 커서를 상황에 맞는 메뉴의 디버그 옵션 위에 놓아 새 인스턴스 시작 상황에 맞는 메뉴가 표시되도록 합니다. 새 인스턴스 시작을 클릭합니다. 그러면 ASP.NET Development Server가 시작되어 서비스를 호스트합니다.
솔루션 탐색기 창에서 Client 프로젝트를 마우스 오른쪽 단추로 클릭하고 커서를 상황에 맞는 메뉴의 디버그 옵션 위에 놓아 새 인스턴스 시작 상황에 맞는 메뉴가 표시되도록 합니다. 새 인스턴스 시작을 클릭합니다.
클라이언트 콘솔 창이 나타나고 실행 중인 서비스의 URI와 실행 중인 서비스에 대한 HTML 도움말 페이지의 URI가 제공됩니다. 언제든지 브라우저에서 HTML 도움말 페이지의 URI를 입력하면 해당 도움말 페이지를 볼 수 있습니다.
샘플이 실행되면 클라이언트에서는 현재 활동의 상태를 씁니다.
아무 키나 눌러 클라이언트 콘솔 애플리케이션을 종료합니다.
Shift+F5를 눌러 서비스 디버깅을 중지합니다.
Windows 알림 영역에서 ASP.NET 개발 서버 아이콘을 마우스 오른쪽 단추로 클릭한 다음 상황에 맞는 메뉴에서 중지를 선택합니다.