C# Web Service et Action mustUnderstand - C#/.NET managed - Programmation
Marsh Posté le 23-02-2015 à 16:44:00
C'est quoi l'intérêt de contourner le truc en cartonnant le MustUnderstand et en quoi ça résoudrait le problème
A mon avis tu suis une mauvaise approche.
Il est en quoi le programme qui déclenche l'appel ?
Pourquoi tel quel ça ne fonctionne pas si tu as importé le wsdl proprement ?
Si c'est du .net et que tu utilises une web référence .Net 2.0 et que tu peux mettre une référence de service wcf (3.5) à la place esssaye, ça peut aussi aider.
Marsh Posté le 25-02-2015 à 19:31:25
En fait j'ai été induit en erreur par le fait que mon Web Service est en UTF8 alors que celui qui est appelé à l'intérieur est en ISO-8859-1. D'où ma recherche pour contourner le problème.
Les rares pages sur Google me donnaient la piste du MustUnderstand, à tort.
Au final il y avait un soucis de balise dans la structure de retour ainsi qu'un certificat foireux sur notre serveur. Merci quand même pour ta réponse.
Marsh Posté le 17-02-2015 à 15:46:17
Bonjour à tous,
J'ai créé un Web Service en C# dont l'appel fonctionne bien dans Visual Studio 2013, mais l'appel depuis un autre programme me donne l'erreur
"L'en-tête SOAP Action n'a pas été reconnu"
En regardant l'enveloppe xml généré, j'ai ceci :
<s:Envelope xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:s="http://www.w3.org/2003/05/soap-envelope">
<s:Header>
<a:Action s:mustUnderstand="1" />
<a:MessageID>urn:uuid:xxxxxxxxxxxxx</a:MessageID>
<a:ReplyTo>
<a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address>
</a:ReplyTo>
</s:Header>
<s:Body>
<CallMonWebService>
<p1 d4p1:nil="true" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance" />
<p2 d4p1:nil="true" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance" />
</CallMonWebService>
</s:Body>
</s:Envelope>
Je comprends donc que la ligne en rouge pose problème. Est il possible de la supprimer lors de la génération du Web Service, ou à défaut passer la valeur de mustUnderstand à 0 ?
J'ai trouvé différents trucs ces deux derniers jours sur Google tels que
MessageVersion.CreateVersion(EnvelopeVersion.Soap11, AddressingVersion.None);
mais aucun ne fonctionne
Merci d'avance pour votre aide.
---------------
Homme, tu n'es que poussière. Thon, tu n'es que miettes.