웹 참조와 서비스 참조


110

Paypal로 거대한 벽돌 벽을 쳤습니다. WSDL을 사용하여 일부 래퍼 클래스를 만들기 위해 일반 C # 프로젝트를 만들었습니다.

웹이 아닌 프로젝트를 만드는 경우 wsdl을 추가 할 수있는 유일한 옵션은 웹 서비스 참조입니다. 그리고 이것은 Web Reference와 동일한 프록시 클래스 세트를 빌드하지만 실제로는 아닙니다. PayPal 사람들조차도 알지 못하는 것 이상을 추가합니다.

그래서 저는이 프록시 클래스 목록에서 서비스 (SoapBinding)로 사용할 올바른 인터페이스를 찾고 있었지만 PayPalAPIAASoapBindingPayPal 연락 지점에 계속 말하지 않았습니다.

나는 PayPalAPIAASoapBinding웹 참조 기반 서비스 참조에서 볼 수있는 것을 보지 못했기 때문에 내가 사용해야하는 것으로 보이는 다음 2 개의 인터페이스 만 볼 수있었습니다 .

PayPalAPIAAInterfaceClient
PayPalAPIInterfaceClient 

그래서 저는 아마 Service Reference와 Web Reference가 웹 프로젝트의 옵션 인 Web Reference를 만들었을 것입니다. 그러나 내 서비스 참조가 내 웹 프로젝트와 밀접하게 결합되는 것을 원하지 않습니다. 이것이 제가 C # 프로젝트를 만든 이유입니다.

그렇다면 도대체 서비스 참조 대 웹 참조는 무엇입니까? 그리고 Service Reference가 나에게 루프를 던지고 Web Reference와 다른 인터페이스 세트를 제공한다면 어떻게 이것을 다른 프로젝트로 분리해야합니까?

또한 상황을 더욱 혼란스럽게 만들기 위해 VS 2008에는 웹 서비스 응용 프로그램 프로젝트가 있습니다.

그래서 나는 무엇을 사용합니까? .NET 3.5 프레임 워크를 사용하고 있으며 WCF로 이동할 준비 가 되지 않았습니다 . 그렇다면 WCF 또는 무엇을 사용하지 않더라도 새 서비스 참조를 계속 사용할 수 있습니까? 아직 WCF가 아닌 .NET 3.5를 사용하고 있고 여전히 기본 웹 서비스를 수행하려는 경우에도 여전히 서비스 참조 경로를 사용하고 WCF 프레임 워크를 사용하지 않습니까? .NET 2.0 웹 참조처럼 사용할 수 있다는 의미입니다. 완전히 다른 세대의 WSDL을 얻게 될 것입니까?



2
8 년 후에도 여전히 관련이 있습니다.
Mike Devenney

답변:


213

웹 참조 추가 는 이전 스타일의 더 이상 사용되지 않는 ASP.NET 웹 서비스 (ASMX) 기술입니다 (XmlSerializer 만 사용). 이렇게하면 ASMX 웹 서비스에 대한 ASMX 클라이언트가 제공됩니다. 거의 모든 프로젝트 (웹 앱, 웹 사이트, 콘솔 앱, Winforms-이름 지정)에서이 작업을 수행 할 수 있습니다.

서비스 참조 추가는 WCF 서비스 참조를 추가하는 새로운 방법으로, 단순한 이전 ASMX 항목보다 훨씬 더 진보되고 훨씬 유연한 서비스 모델을 제공합니다.

WCF로 이동할 준비가되지 않았으므로 이전 스타일의 웹 참조를 추가 할 수도 있습니다. 정말로 필요한 경우 : "서비스 참조 추가"를 수행 할 때 나타나는 대화 상자에서 [고급 ] 버튼 왼쪽 모서리에있는 버튼 :

대체 텍스트

다음 대화 상자가 나타나면 하단의 [웹 참조 추가] 버튼을 선택합니다.


6
MS가 WCF 대화 상자에서 그것을 숨기는 것은 얼마나 어리석은 일입니까! 여기에 배치하는 것도 말이되지 않습니다
PositiveGuy

9
@coffeeaddict : 음, MS가 기본적으로 WCF를 사용하도록 미묘하게 흔들고 있다고 생각합니다.-그리고 정말로 결정된 경우에만 구식 ASMX 만 사용합니다. :-)
marc_s

27
Alt + PrtScn을 사용하면 현재 활성 창의 스냅 샷을 찍을 수 있습니다. 이렇게하면 원하는대로 수동으로 잘라낼 필요가 없습니다. : o)
Ernest

컴퓨터에서도 .NET 2.0이 필요합니까? 아니면 .NET 4.0이 .NET 2.0 기반 "웹 참조"기술을 처리 할 수 ​​있습니까? .NET 4.0 응용 프로그램에서 SOAP 웹 서비스를 "웹 참조"로 배포하고 있기 때문에 알고 싶습니다.
컴퓨터 사용자

1
@sparkyShorts : 네.
marc_s

9

귀하의 질문을 올바르게 이해하는 경우 :

WCF 서비스 참조 대신 .net 2.0 웹 서비스 참조를 추가하려면 프로젝트를 마우스 오른쪽 단추로 클릭하고 '서비스 참조 추가'를 클릭하십시오.

그런 다음 대화 상자의 왼쪽 하단에서 "고급 .."을 클릭하십시오.

그런 다음 다음 대화 상자의 왼쪽 하단에있는 "웹 참조 추가 .."를 클릭하십시오.

이제 찾고있는 것과 같은 일반 SOAP 웹 참조를 추가 할 수 있습니다.


컴퓨터에서도 .NET 2.0이 필요합니까? 아니면 .NET 4.0이 .NET 2.0 기반 "웹 참조"기술을 처리 할 수 ​​있습니까? .NET 4.0 응용 프로그램에서 SOAP 웹 서비스를 "웹 참조"로 배포하고 있기 때문에 알고 싶습니다.
컴퓨터 사용자

4

서비스 참조를 추가하면 적절한 바인딩을 사용하는 경우 일반 웹 서비스와 통신하는 데 사용할 수있는 WCF 클라이언트를 만들 수 있습니다. 웹 참조를 추가하면 웹 서비스 (예 : SOAP) 참조 만들 수 있습니다 .

WCF를 사용할 준비가되지 않았다고 확신하는 경우 (정말 이유를 모르겠 음) 일반 웹 서비스 참조를 만들어야합니다.


3
WCF는 초보자에게 쉽지 않기 때문입니다. 게다가 내 상사가 내가 그렇게하는 것을 허락하지 않을 것이 진짜 이유입니다. 코드이고 여기에서 실행됩니다. 그런 상황이 생기면 제가 할 수있는 일은 아무것도 없습니다.
PositiveGuy

7
@coffeeaddict 나는 당신과 당신의 상사가 잘못된 정보를 알고 있다고 생각합니다. 두 유형의 참조 모두 서비스 작업을 호출하는 메서드를 제공하는 클래스를 만듭니다. "서비스"참조에 의해 생성 된 클래스가 Microsoft가 WCF라고 부르는 일부 기술의 일부로 간주하는 라이브러리에있는 기본 클래스에서 상속되는 것은 어떤 관련이 있습니까?
Daniel Pratt

1
컴퓨터에서도 .NET 2.0이 필요합니까? 아니면 .NET 4.0이 .NET 2.0 기반 "웹 참조"기술을 처리 할 수 ​​있습니까? .NET 4.0 응용 프로그램에서 SOAP 웹 서비스를 "웹 참조"로 배포하고 있기 때문에 알고 싶습니다.
컴퓨터 사용자

3

결국 둘 다 같은 일을합니다. 코드에는 몇 가지 차이점이 있습니다. 웹 서비스는 프로젝트의 루트 네임 스페이스를 추가하지 않지만 서비스 참조는 프로젝트의 네임 스페이스에 서비스 클래스를 추가합니다. ServiceSoapClient클래스는 중요하지 않습니다 다른 이름을 가져옵니다. TFS로 작업 할 때 소스 제어에서 더 잘 작동하기 때문에 Service Reference를 사용하고 싶습니다. 둘 다 SOAP 프로토콜에서 작동합니다.

서비스 참조는 새롭고 유지 관리가 더 좋기 때문에 사용하는 것이 더 좋습니다.

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