WSDL 파일에서 WCF 프록시를 생성했지만 프록시 메서드를 호출하면 null을 반환합니다. 메시지 로깅을 활성화했으며 서버의 메시지가 올바르게 반환되었는지 확인할 수 있습니다.WSDL에서 생성 된 WCF 프록시, 프록시 메서드가 null을 반환합니다.
나는 this 질문의 답을 확인했지만 적어도 내 경우에는 반환 된 개체의 이름이 메시지와 WSDL에서 동일했다. 여전히 "? wsdl"URL (제 3 자 웹 서비스)을 통해 일반적인 방법으로 가져 오지 않기 때문에 문제가 WSDL 파일과 관련이 있다고 생각하지만 별도로 제공되었습니다.
메서드의 반환 형식은 문자열입니다.
비슷한 문제가있는 사람이 있습니까? 해당 솔루션은 무엇입니까? 문제의 가장 큰 원인은 무엇입니까?
다시 편집 :
그것은 RPC/인코딩 된 웹 서비스입니다. 작성된대로 메시지 로깅을 통해 SOAP 응답을 볼 수 있지만 WCF는 정보를 구문 분석 할 수없는 것 같습니다.
서비스 응답의 메시지 부분은 다음과 같습니다 : 내 클라이언트에서 보내는 메시지를 검사 할 때
<ns1:ServiceResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="the target namespace">
<ns1:ReturnValue xsi:type="xsd:string">
을하지만, 그것은 다르다 :
는<ns1:ServiceRequest soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="the target namespace">
<RequestValue xsi:type="xsd:string" xmlns="">
그래서 어쩌면 프록시는 예상 응답은 동일한 네임 스페이스 구조를 가지므로 구문 분석에 실패합니다.
은 내가 WSDL 메시지 정의에 element
에 type
속성을 변경하려고하고 WSDL 정의의 types
부분에 새로운 요소를 추가,하지만 프록시를 생성 할 때 다음는 svcutil은 충돌이 있다고 불평, 초크했습니다 유추 된 스타일 문서와 지정된 스타일 rpc 사이. WSDL specification 가입일
섹션 3.5
사용 인 경우는
부호화는 각 메시지 부분은 형 속성을 사용하여 추상 타입을 참조한다.
그러나이 글에서는 문제가되지 않았으므로 약간 혼란 스럽습니다. question. 유사한 변경을하기 위해 RPC/인코딩 된 서비스라는 제한이 필요한 것은 무엇입니까?
WSDL을 어떻게 생성 했습니까? svcutil 명령을 사용 했습니까? 아니면 VSS에 서비스를 추가 했습니까? 응답의 형식 (텍스트, MTOM?) 및 어떤 종류의 웹 서비스인지 알고 있습니까? – K2so
올바른 : WSDL에서 클래스를 어떻게 생성 했습니까? – K2so