[c#] 웹 참조와 서비스 참조

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을 얻게 될 것입니까?



답변

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

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

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

대체 텍스트

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


답변

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

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

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

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

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


답변

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

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


답변

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

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


답변