2009-07-09 1 views
3

웹 서비스 응답 문제를 어떻게 해결할 수 있는지 알고 있습니까? 웹 서비스 호출에서 비누 메시지를 다시 가져올 때 "이 문자열은 유효한 AllXsd 값이 아닙니다"라는 예제가있는 datetime과 같은 값 형식이되면이 오류가 발생합니다.SOAP 웹 서비스 사용, 값 유형을 비 직렬화 할 때의 오류

내 프록시 클래스는 wsdl.exe를 사용하여 wsdl에서 생성되며 wsdl은 유효합니다. 프록시 클래스에서 아무 것도 잘못 본적이 없습니다 (지정된 값이 생성되고 datetime은 null 가능).

전 net에서 비누 봉투를 볼려고했으나 모든 것이 정상적으로 보입니다.

다른 문제를 해결할 방법이 있습니까? 또는 여기에 무슨 일이 일어나고 있는지에 대한 단서가 있습니까?

+0

완전한 예외 사항을 게시하십시오. 예외를 잡아서 ex.ToString()의 결과를 게시하십시오. –

답변

1

좋아요. 문제가 무엇인지 알았습니다.

SOAP에서 null이 될 수있는 요소에 대한 2 가지 방법이 있습니다 :

어느 또는 인수 XSI로 누락 전체 요소 : 전무 = "true"로하고

그들은하여 고정 된 값이 없음 첫 번째 옵션으로 메시지를 수정합니다. 그 이후 나는 문제없이 비 직렬화 할 수 있습니다.

답장을 보내 주셔서 감사합니다.

1

웹 서비스에서 제공되는 설명서가 있습니까? datetime을 사용할 때 날짜가 올바른 형식 date.ToString("yyyy-MM-dd"); 또는 서비스가 기대하는 것이 무엇인지 확인하면이 문제가 발생한다고보고합니다.

1

Web Service Studio을 시도하고 해당 도구로 웹 서비스를 방문하여 클라이언트와 동일한 문제가 있는지 확인하십시오. 몇 가지 단서를 수집 할 수 있습니다. 웹 서비스가 귀하의 코드입니까? 그렇다면 asmx 또는 WCF를 사용하고 있습니까? DataContract serializer 또는 XmlSerializer를 사용하고 있습니까? 클라이언트 프록시를 다시 생성 해 보셨습니까?

0

xsi:nil="true" 문제로 인해 내 SOAP 요청이 BadRequest를 반환했습니다. 예를 들어

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

: 그것을 고정 무엇
는 는 SOAP 봉투의 상단에이를 추가했다

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://www.blahblahblah.com/myobjectdefinition" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

SoapUI가이 비트를 생성하지 않은 이유는 모르겠지만, 어쨌든 그것은 나를 위해 그것을 고쳤다.

관련 문제