실제 wsdl 파일만으로 서비스 참조를 생성하는 방법


123

저는 수년간 웹 서비스를 만들고 사용했으며 항상 Visual Studio를 사용하여 클라이언트에서 서비스 참조를 만들 수있었습니다. 작업해야 할 타사 서비스가 있는데 그들은 보안을 열지 않기 때문에 wsdl을보고 서비스 참조를 만들 수 있습니다. 그것은 공공 서비스이기 때문에 그 수준의 보안이 필요하다고 생각하지 않지만 그것이 무엇인지입니다.

이 질문이 n00b 질문이라는 것을 알고 있으며 부끄럽습니다.하지만 클라이언트가 이메일을 보낸 wsdl의 실제 사본 만 사용할 수있는 경우 클라이언트에서 동등한 서비스 참조 정보를 생성하려면 어떻게해야합니까? web.config 변경, SOAP 데이터 위의 개체 계층 등. 자동화 된 서비스 참조와 마찬가지로 서비스에 대한 연결을 열고 정의 된 개체와 함께 사용하기 시작합니다.

타사 서비스는 내가 알 수있는 한 WCF가 아니라 SOAP입니다. VS 2010 btw를 사용하고 있습니다. 미리 감사드립니다, 켄


답변:


180

이것이 가장 쉬운 방법 일 수 있습니다

  • 프로젝트를 마우스 오른쪽 단추로 클릭하고 "서비스 참조 추가 ..."를 선택하십시오.
  • 주소 : 상자에 다운로드 / 수정 된 wsdl의 실제 경로 (C : \ test \ project ....)를 입력합니다.
  • 이동

11
"Copy as Path"를 사용하는 경우 따옴표를 제거하십시오.
— O. Jones

다른 사람에게 전달하기 위해 wsdl을 저장할 때 크롬의 웹 서비스에서 wsdl의 "소스보기"는 저에게 작동하는 wsdl을 제공했지만 IE11은 그렇지 않았습니다. YMMV.
— archangel76

68

이 문제를 해결하는 데는 두 가지 방법이 있습니다. IDE를 사용하여 WSDL을 생성하거나 명령 줄을 통해 생성 할 수 있습니다.

1. IDE를 통해 생성하려면 :

솔루션 탐색기 창에서 서비스를 추가 할 프로젝트를 마우스 오른쪽 단추로 클릭합니다.

여기에 이미지 설명 입력

그런 다음 서비스 WSDL의 경로를 입력하고 go를 누를 수 있습니다.

여기에 이미지 설명 입력

2. 명령 줄을 통해 생성하려면 :

VS 2010 명령 프롬프트 (프로그램-> Visual Studio 2010-> Visual Studio 도구)를 열고
다음을 실행합니다.

WSDL /verbose C:\path\to\wsdl

그러면 WSDL.exe는 사용자가 사용할 .cs 파일을 출력합니다.

xsd와 같이 파일과 함께받은 다른 종속성이있는 경우 인수 목록에 추가합니다.

WSDL /verbose C:\path\to\wsdl C:\path\to\some\xsd C:\path\to\some\xsd

당신은 VB 출력, 사용이 필요한 경우 /language:VB받는 사람뿐만 아니라 /verbose.


'Unable to import binding'blah 'from namespace'blahURL 'and Unable to import operation'SomeRequest ', The element'xxx 'is missing. 이것은 그들이 나에게 더 많은 지원 파일을 제공해야한다는 것을 의미합니까, 아니면 그들이 내가 아무것도 할 수 없을 정도로 그들의 보안이 너무 겁에 질려 있다는 것을 의미합니까?
— kfoster

종속성이 누락 된 것 같습니다. WSDL을 열고 상단을보십시오. importxsd 경로를 가리키는 schemaLocation이 뒤에 오는 줄이있는 경우 해당 xsd 파일도 필요합니다.
— Lynn Crumbling

응답 해 주셔서 감사합니다. 필요한 xsd 가져 오기를 얻을 수 있는지 확인하기 위해 클라이언트와의 미해결 이메일이 있습니다. 그래도 너무 실망 스럽습니다. 바로 완료되면 ServiceReference 대화 상자에 URL을 표시하고 버튼을 누르고 비올라를 누르십시오! 서비스 메서드를 호출하는 데 약 3 줄의 코드가 필요합니다. 전체 과정은 약 5 분 정도 걸립니다. 그러나 저는이 클라이언트와 몇 주 동안 작업 해 왔으며 보안 담당자가 웹을 통해 서비스 정의에 대한 액세스를 열지 않기 때문에 모든 곳을 찾지 못했습니다.
— kfoster

그것은 거칠다. 나는 현재 프로젝트를 위해 VPN 연결을 기다리고 있습니다. 다행히 그들은 미리 wsdl과 함께 xsd 문서를주었습니다. 그래서 wsdl에서 그 수입품을 찾았습니까?
— Lynn Crumbling

예. 4 개의 서비스에 대해 그들이 2 개에 대해 wsdl을, 다른 2 개에 대해 xsd를 주었으므로 어떤 서비스에도 완전한 파일 세트가 없습니다. 그러나 마침내 나는 xsd를 얻었고 2 개의 서비스에 대해 .cs 파일을 생성 할 수 있었고, 다른 2 개는 내가 생각하기에 따를 것입니다. 감사.
— kfoster
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.