2010-01-26 30 views
1

J'ai un problème avec la vérification de la réponse SoapFault de writen dans le webservice PHP Soap. Responce ressemble à ceci (par défaut "throw new SoapFault (" SOAP: CLIENT " "login Bad");" CodeCheck in C# si le soap php a renvoyé soapFault

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> 
<SOAP-ENV:Body> 
    <SOAP-ENV:Fault> 
     <faultcode>SOAP:CLIENT</faultcode> 
     <faultstring>Bad login</faultstring> 
    </SOAP-ENV:Fault> 
</SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

Et C# ressemble à ceci:

try 
{ 
    //creating new webservice, filling headers and alling something 
    webservice = new... 
    items = webservice.getSth(); 
} 
catch (Exception ex) 
{ 
    MessageBox.Show(ex.Message); -> "Namespace prefix 'SOAP' not defined" 
} 

Lorsque login/pass/apikey etc est OK que je reçois ce que je dois, mais quand STH est faux que je ne peux pas afficher une bonne information.

Comment vérifier si SOAP est retourné faute? je googlé le problème, mais ne pourrais pas trouver des informations précieuses.

Malheureusement je ne peux pas changer le webservice.

Merci pour toute aide.

Répondre

0
catch (SoapException ex) 
{ 
    Console.WriteLine(ex.Detail.OuterXml); 
} 
+0

Unfortunetly SoapException est vide, quand j'utilise try {..} catch (SoapException ex) {..} catch (Exception ex) {..} il va droit à l'exception a même essayé avec XmlExceptions mais ils étaient aussi "vides" – cichy

+0

Edit: ne sais pas pourquoi, mais après des centaines de compilations, il a commencé à travailler:/ Thx de toute façon :) – cichy