웹 참조와 서비스 참조의 차이점은 무엇입니까?


답변:


102

여기서의 저수준 대답은 웹 참조가 코드가 WSDL을 통해 설명되고 SOAP 또는 HTTP GET을 통해 통신하는 웹 서비스와 통신 할 수있는 클라이언트 프록시 클래스를 작성한다는 것입니다 (다른 포스터는 ASMX 일 뿐이지 만 웹 참조는 또한 모두 WSDL과 통신하고 WS-I 상호 운용성 표준을 준수하는 한 Java 기반 웹 서비스 또는 Python 기반 또는 Ruby와 통신 할 수 있습니다.

서비스 참조는 WCF 서비스가 웹 서비스인지 여부에 관계없이 WCF 기반 서비스와 통신하는 클라이언트 프록시 클래스를 작성합니다.


1
올바른 형식의 WSDL을 가진 표준 웹 서비스가 기준을 충족한다고 덧붙여 +1
sidney.andrews

Java 기반 웹 서비스에 서비스 참조를 추가 할 수 있습니까? 여전히 이해가 되겠습니까? 자바는 WCF 스택에 대해 아무것도 ... 알고하지 않기 때문에
user20358

예, wsdl이있는 경우 java 등 웹 서비스에 서비스 참조를 추가 할 수 있습니다. 이 경우 서비스 참조는이를 "클래식"웹 참조처럼 취급합니다.
Brady Moritz

웹 서비스가 WSMX 기술 웹 서비스 및 ASMX를 소비 할 수 있음을 나타내는 +1 사실, 웹 참조와 서비스 참조가있는 비즈니스 계층이 있습니다. 웹 참조는 WSDL 웹 서비스를 사용하고 서비스 참조는 ASMX 서비스를 사용합니다.
Jagd

67

웹 참조를 사용하면 WS-I 기본 프로파일 1.1을 구현하고 관련 메타 데이터를 WSDL로 노출하는 기술을 기반으로 모든 서비스와 통신 할 수 있습니다. 내부적으로 클라이언트 측에서 ASMX 통신 스택을 사용합니다.

서비스 참조를 사용하면 WCF에서 지원하는 많은 프로토콜 (WS-I 기본 프로파일 포함)을 구현하는 기술을 기반으로 서비스와 통신 할 수 있습니다. 내부적으로 클라이언트 측에서 WCF 통신 스택을 사용합니다.

이 두 정의는 모두 광범위하며 .NET으로 작성되지 않은 서비스도 포함합니다.

WCF 끝 점이 사용 basicHttpBinding하거나 호환되는 사용자 지정 변형을 사용하는 한 WCF 서비스를 가리키는 웹 참조를 추가하는 것이 가능합니다 (권장하지는 않지만) .

ASMX 서비스를 가리키는 서비스 참조를 추가 할 수도 있습니다. 새 코드를 작성할 때는 항상 유연하고 미래에 대비할 수있는 서비스 참조사용해야합니다 .


1
누구나 서비스 참조를 통해 서비스를 소비하는 방법을 시작할 수 있습니까? 웹 참조를 사용하면 항상 일종의 서비스 객체에서 핵심 기능을 찾을 수있는 것 같습니다. 서비스 레퍼런스로는 그리 많지 않습니다. 예를 들어, FedEx 요금 서비스를 사용하여 다양한 FedEx 배송 옵션에 대한 가격을 얻으려고합니다. 어딘가에 getRates () 호출이 있다는 것을 알고 있지만 서비스 참조로는 찾을 수 없습니다.
벤 밀스

@BenMills : Client접미사가 있는 클래스를 찾으십시오 .
Christian Hayter

17

서비스 참조는 모든 방식의 WCF 서비스에 대한 참조를 추가하기위한 새로운 인터페이스입니다 (웹 서비스는 아닐 수도 있음). 웹 참조는 특히 ASMX 웹 참조와 관련이 있습니다.

서비스 참조 추가의 고급 옵션을 통해 웹 참조에 액세스 할 수 있습니다 (정확하게 리콜하는 경우).

서비스 참조는 내가 이해할 때 두 가지의 새로운 메커니즘이기 때문에 서비스 참조를 사용합니다.


8
서비스 참조 추가-> 고급-> 웹 참조 추가 ... 직관적이지 않은 솔루션과 다릅니다.
Jagd

7

서비스 참조는 완전히 구성 가능한 엔드 포인트 및 바인딩을 처리합니다. 전송 프로토콜 (HTTP, TCP, 공유 메모리 등)을 통해 클라이언트 프록시가 WCF를 가리 키도록합니다.

WCF와 함께 작동하도록 설계되었습니다.

WebProxy를 사용하는 경우 HTTP를 통한 WCF 사용에 거의 구속력이 있습니다.


5

고려해야 할 또 다른 요점은 새로운 서비스 인터페이스 UI가 프록시 클래스 작성 방법에 훨씬 더 많은 유연성을 제공한다는 것입니다. 예를 들어, 데이터 계약이 기존 dll과 일치하는 경우 (실제로 이것이 기본 동작 임) 데이터 계약을 맵핑 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.