C#

2009-09-25 3 views
3

의 VS2008 솔루션에서 Axis 생성 웹 서비스를 소비합니다. 축 기반 웹 서비스에 대한 웹 참조를 Visual Studio 2008 솔루션에 추가하려고합니다. 내가받은 URL은 브라우저를 통해 성공적으로 액세스 할 수있는 WSDL을 가리키며 모든 WService 세부 정보를 볼 수 있습니다. 사용 된 축 버전은 1.4입니다.C#

하지만 wsdl.exe를 실행하거나 내가 VS2008에 대한 참조를 추가 할 때 오류가 진술 나는 왼쪽의 방법 목록을 볼 수 있지만 내가 할 경우 :


의 URL http://............?wsdl에서 문서 알려진 문서 유형으로 인식되지 않았습니다. 알려진 각 유형에서

오류 메시지는 문제를 해결하는 데 도움 수 있습니다 '. 발견 할 수없는 URL http://.........?wsdl에서 발견 문서' 'DISCO 문서'에서

  • 보고서입니다.
    • 문서 형식이 인식되지 않습니다.
  • 'WSDL 문서'의 보고서가 'XML 문서 (510, 62)에 오류가 있습니다.'
    • 네임 스페이스 접두사 'impl : urn'이 정의되지 않았습니다. 'XML 스키마'에서
  • 보고서 '.'. ''는 W3C XML 스키마의 루트 요소가 있어야하며 네임 스페이스가 있어야한다 'http://www.w3.org/2001/XMLSchema

내가 진행할 수 없습니다. 그래서 여기에 다른 게시물을보고 있지만, 그들 모두는 웹 참조가 이미 추가되어있는 상황을 언급한다.

많은 감사를 사전에!

A.

편집 : 사실, 나는 손으로 문제를 해결할 수있었습니다. dovholuk에서 제안한 것처럼 : wsdl을 파일 시스템에 저장 한 다음 손으로 수정했습니다. wsdl.exe가 클래스를 생성 할 수있었습니다. 그런 다음 프로젝트에 클래스를 추가하고 웹 서비스를 호출 할 수있었습니다.

챠오 안드레아

답변

3

이 축 1.4을 사용할 때 경험 일반적인 문제입니다. 나는 개인적으로 항상 내 wsdl 및 xsd 코드를 손으로 출력하는 대신 방출 기능을 사용합니다. 다른 이유는 다음과 같습니다.

? wsdl을 열고 구문 분석을 시작하면 거기에 몇 가지 열거 형이 있습니다. 비었다". 뭔가 같은 :

<xs:simpleType name="MyType"> 
</xs:simpleType> 

(당신이 할 수 있는지 확실하지 않습니다?) 당신이 WSDL을 게시하지 않았기 때문에 난 정말 그냥 여기 추측하고있어하지만 난 내 WSDL/XSD를 작성하고 제한이있을 때 나는이 정확한 동작을 얻을 간단한 유형 ...같은 :

<xs:simpleType name="IpAddress"> 
    <xs:restriction base="xs:string"> 
    <xs:pattern value="\d*"> (note this is not 'correct' i'm just 'for instancing') 
    </xs:restriction> 
</xs:simpleType> 

(즉 무효 XSD 있다면 나를 죽이지 마세요 - 난 그냥 메모리에서거야 ... :))

이 얻을 때 축,이 빨아 객체를 생성하지만 것 ? wsdl을 사용하여 방출?

그래서 내 조언은 그 wsdl을 통해 빗질하는 것입니다 - 특히 '불완전한'스키마 정의를위한 유형 섹션 ... 당신의 자바에서 그들을 꺼내보십시오. 다시 'C#에서 작동 할 때까지 ...

도움이되는지 아닌지는 모르지만 다른 아이디어, 포스트 백 ...