C # SOAP - Erreur lors de la désérialisation du message du corps de la réponse (API Magento)
J'essaie de connecter une application en C# pour Magento 1.6 (par le biais de Magento SAVON V2) en utilisant le code suivant:
using (Mage_Api_Model_Server_Wsi_HandlerPortTypeClient proxy = new Mage_Api_Model_Server_Wsi_HandlerPortTypeClient())
{
string sessionId = proxy.login("XXXXXXX", "XXXXXXXXXXX");
Console.WriteLine(sessionId);
}
et j'obtiens l'erreur suivante:
Error in deserializing body of reply message for operation 'login'.
J'ai utilisé un violon pour inspecter le transfert et voilà le résultat:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:Magento">
<SOAP-ENV:Body>
<ns1:loginResponseParam>
<result>fc094df96480dbbcdXXXXXXXXXXXXXXX</result>
</ns1:loginResponseParam>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Je suis en utilisant:
- Magento V 1.6
- Magento SAVON V2
- WS-I de la Conformité (c'est à dire de Système/Configuration/Services/Magento API de Base/WS-I de la Conformité est définie sur Oui)
- Type de contenu corrigé: Contenu Type d'Erreur de Consommer de Magento 1.5 Webservices .Net
- VS 2010
- .Net 3.5
Des idées comment je peux le résoudre (ou de débogage) ce problème?
source d'informationauteur mas
Vous devez vous connecter pour publier un commentaire.
c'est en fait assez facile à corriger. Ouvrez le site web.config/app.config de l'application que vous utilisez pour vous connecter à magento
trouver cette ligne
Prendre note de la configuration de liaison et le type de liaison. Dans le ci-dessus basicHttpBinding/BasicBinding
Prochaine recherchez ce qui suit: section de configuration.
Avis de la nidification ici, la liaison -> type de liaison -> nom de l'élément de liaison
Lorsque visual studio génère le proxy par défaut les valeurs qu'il donne pour le lecteur de quota et ne sont pas assez grand pour contenir toutes les données. Simplement les augmenter tout comme j'ai fait dans l'exemple ci-dessus.
Je suis très inconnu avec l'ensemble "des Services Web == Savon == WS-*" le développement de la pile, mais je ne sais Magento 1.6 introduit quelque chose appelé "WS-I de la Conformité" pour son API. Vous devez utiliser la V2 du Savon URL, et aussi de mettre
à "Oui" (dans le Système Magento est Admin). Cela indiquera à Magento pour utiliser le
soap_wsi
gestionnaire de la place de lasoap_v2
gestionnaire. Vous pouvez voir le contrôleur qui gère le Magento requêtes Soap àAucune idée si cela va vous aider, mais vous avez inclus
et les mots correspondent donc, il ya une chance de l'aide.
J'ai essayé toutes les réponses ci-dessus, mais il ne résout pas mon problème, dans mon cas particulier, j'ai trouvé que c'était membres de données avec le type DateTime crée le problème.
Auparavant, j'étais paramètre de Données
2015-07-21T13:55:30.5962405+05:30 -> Pas de travail
ensuite changé
2015-03-29T09:30:47 -> de Travail
Certains la façon dont la date n'a pas été en mesure de sérialiser