je dois consommer un service Web tiers en utilisant SOAP. Il était facile de l'utiliser avec WCF, mais maintenant j'ai un problème avec les fautes SOAP. Le service envoie-moi un défaut SOAP incorrect:Comment gérer une erreur SOAP incorrecte dans WCF?
<?xml version="1.0" encoding="utf-8" ?>
<SOAP-ENV:Envelope
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<SOAP-ENV:faultcode>14</SOAP-ENV:faultcode>
<SOAP-ENV:faultstring>Unknown Function</SOAP-ENV:faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
L'erreur est que le <faultcode>
ne doit pas avoir un espace de noms:
System.ServiceModel.CommunicationException : Server returned an invalid
SOAP Fault. Please see InnerException for more details.
----> System.Xml.XmlException : Start element 'faultcode' from namespace
'' expected. Found element 'SOAP-ENV:faultcode' from namespace
'http://schemas.xmlsoap.org/soap/envelope/'.
Je ne peux pas changer le service Web d'origine - mais il n'y a rien dans WCF je peux utiliser pour gérer encore ces messages de défaut d'une certaine façon sans obtenir CommunicationException
tout le temps?
Merci, c'était exactement ce qu'il me fallait! Et c'est assez élégant :) – chris166