2009-09-03 3 views
0

비교적 작은 문제가 있습니다. 내 응용 프로그램과 타사 프로그램을 개발하고 인터페이스하고 있습니다. 이 둘 사이의 통신은 SOAP 웹 서비스에 의해 이루어진다. 그들은 나에게 데이터를 받고 보내는데 사용할 wsdl을 제공했다. wsdl.exe 도구를 사용하여 서비스 인터페이스와 클라이언트를 만들었습니다. 생성하는 동안 오류나 경고가 없습니다.생성 된 SOAP 서비스 인터페이스가 올바른 네임 스페이스에 없습니다.

문제는 생성 된 코드 네임 스페이스에서 비롯됩니다. 인터페이스에 정의 된 것을 사용하는 대신 tempuri.org를 사용합니다. 좋아, 더 큰 문제는, 내가

[ServiceContract (Namespace = "theDesiredNamespace")] 

문제의 네임 스페이스를 정의 할 수없는 것은 내가

http://theDesiredNamespace/myMethod 

에서 내 웹 서비스 방법에 대한 액세스를 제공하려면 대신 내 서비스가 그것을 제공하는 것입니다 :

http://theDesiredNamespace/nameOfTheInterface/myMethod 

여기서 nameOfTheInterface는 wsdl 도구가 자동으로 생성 한 인터페이스의 이름입니다.

내가 어떻게 처리 할 수 ​​있는지에 대한 조언이 있으십니까? 가장 쉬운 해결책은 실제로 제 3 자에게 내 새로운 wsdl 버전을 보내야한다는 것입니다 (완료되어야 함). 그러나 나는 선택의 여지가 없습니다.

이 문제를 해결할 수있는 방법이 있습니까?

답변

0
  1. WSDL.EXE는 기존 ASMX 웹 서비스 용이며 WCF 용입니다 ([ServiceContract]을 사용할 때 사용하는 것임).
  2. URL과 비슷하지만 XML 네임 스페이스는 웹에서의 위치와 아무 관련이 없습니다. http://www.company.com/webservices/applicationName/serviceName/과 같은 단일 네임 스페이스를 사용하려면이 필요합니다. 그런 다음 원하는 URL에서 서비스에 액세스 할 수 있습니다. XML 네임 스페이스와 서비스 URL 간에는 아무런 관련이 없습니다.
+0

답장을 보내 주셔서 감사합니다. Wmf가 아닌 ASMX 웹 서비스의 경우 wsdl에 동의하지만 어떻게 서버 인터페이스 코드를 생성합니까? 그렇다면 XML 네임 스페이스와 내가 액세스 할 수있는 URL의 차이점을 이해할 수 있지만 원하는 방식으로이 URL을 설정하는 것은 어렵습니다. 내가 원하지 않는 인터페이스 이름을 자동으로 추가합니다. [ServiceContract]의 url에 사용 된 네임 스페이스를 설정했지만 그와 내 메소드 이름 사이에 인터페이스 이름을 계속 추가합니다. – srodriguez

+1

svcutil.exe 명령을 사용하십시오. –

관련 문제