J'ai généré un proxy WCF à partir d'un fichier WSDL, mais maintenant quand j'appelle les méthodes du proxy, elles renvoient null. J'ai activé l'enregistrement des messages et je peux voir que les messages du serveur sont correctement renvoyés.
J'ai vérifié la réponse de este Mais dans mon cas, le nom de l'objet renvoyé était le même dans le message et dans le WSDL. Je pense toujours que le problème est lié au fichier WSDL, puisqu'il n'est pas récupéré de la manière habituelle via l'URL "?wsdl" (il s'agit d'un service Web tiers), mais qu'il a été fourni séparément.
Le type de retour de la méthode est simplement une chaîne de caractères.
Quelqu'un d'autre a-t-il eu des problèmes similaires, et quelle a été la solution correspondante, le cas échéant ? Quelle est la source la plus probable du problème ?
Re-edit :
Il s'agit d'un service web RPC/Encodé. Comme écrit, je peux voir la réponse SOAP par l'enregistrement de message, mais WCF semble ne pas pouvoir analyser l'information.
La partie message de la réponse du service ressemble à ceci :
<ns1:ServiceResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="the target namespace">
<ns1:ReturnValue xsi:type="xsd:string">
Cependant, en inspectant le message sortant de mon client, c'est différent :
<ns1:ServiceRequest soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="the target namespace">
<RequestValue xsi:type="xsd:string" xmlns="">
Il se peut donc que le mandataire s'attende à ce que la réponse ait la même structure d'espace de noms et qu'il ne parvienne pas à l'analyser.
J'ai essayé de changer le type
de l'attribut element
dans les définitions de messages wsdl, et l'ajout de quelques nouveaux éléments dans le fichier types
de la définition wsdl, mais ensuite le svcutil s'arrête lors de la génération du proxy, se plaignant qu'il y a un conflit entre le document de style inféré et le style rpc spécifié.
De la Spécification WSDL , section 3.5 :
Si l'utilisation est encodé chaque partie de message fait référence à un type abstrait en utilisant l'attribut type attribut.
Mais alors, je suis un peu confus, puisque cela ne semble pas avoir été un problème dans ce pregunta . Que faudrait-il faire pour apporter une modification similaire, avec la restriction qu'il s'agit d'un service RPC/encodé ?