J'ai un pb pour interroger un WS PHP en C# d'après son WSDL
au départ je pensais que la déclaration d'un tableau en retour ne lui plaisait pas...d'ailleurs ça ne lui plaisait pas, j'ai du changer de notation. Maintenant il sait importer le service mais j'ai systématiquement l'erreur
je pensais que ça venait de mon tableau, mais j'ai trouvé un cas beaucoup plus simple qui me pose le même problème.Une exception de première chance de type 'System.ServiceModel.CommunicationException' s'est produite dans mscorlib.dll Une exception non gérée du type 'System.ServiceModel.CommunicationException' s'est produite dans mscorlib.dll Informations supplémentaires*: Erreur lors de la désérialisation du corps du message de réponse pour l'opération 'xxx'. Le programme '[24132] ConsoleApplication2.vshost.exe: Managé (v4.0.30319)' s'est arrêté avec le code 0 (0x0).
dans mon complexType résultat j'ai un champ Matricule que je déclare de type xsd:string...ok, il me revient sans problème.
Si dans l'input je déclare que c'est un tns:Matricule :
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <xsd:simpleType name="Matricule"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="8"/> </xsd:restriction> </xsd:simpleType>
ça passe aussi, mais ce même type dans l'output me provoque l'erreur donnée plus haut.
en gros, ça il sait le lire,
ça il ne sait pas le lire
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:xmethods" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns2="http://127.0.0.1/appli/ws/horodatage/?wsdl" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <ns1:Response> <result xsi:type="ns2:Response"> <Matricule xsi:type="tns:string">826</Matricule> </result> </ns1:Response> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:xmethods" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns2="http://127.0.0.1/appli/ws/horodatage/?wsdl" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <ns1:Response> <result xsi:type="ns2:Response"> <Matricule xsi:type="ns2:Matricule">826</Matricule> </result> </ns1:Response> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
NB: j'ai importé ce même service sous Delphi, il me déclare un type Matricule = string et fonctionne sans problème.
où est le problème ?
Partager