Problème sérialisation XML WebService

cs_blat Messages postés 102 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 5 juin 2007 - 19 janv. 2007 à 14:28
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 - 23 janv. 2007 à 20:21
Bonjour,

Voila mon problème : je tente de créer un webservice qui accède à un autre webservice. Pour ce faire, j'ai crée un proxy du webservice que je tente d'accéder grace à la commande wsdl.

wsdl /out:proxy.cs /n:proxy http://adresseduwebservice.com:8080/wsdl

Ensuite, j'ai un petit client tout con qui se connecte au webservice...

Fichier Client.cs :
using System;
using System.Net;
class Client {
    static void Main (string[] args) {
        proxy.MonWebService ws = new proxy.MonWebService();
        ws.Credentials = new NetworkCredential("username", "password");
        UInt32[] id = ws.GetAllIds();
        //...
    }
}

A la compilation (gmcs /t:exe /out:client.exe /r:System.Web.Services client.cs proxy.cs) tout se passe bien, mais à l'exécution gros crash :
Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object
  at System.Xml.Serialization.XmlSerializationReader.ReadList (System.Object resultList) [0x00000]
  at System.Xml.Serialization.XmlSerializationReader.ReadReferencingElement (System.String name, System.String ns, Boolean elementCanBeType, System.String fixupReference) [0x00000]
  at System.Xml.Serialization.XmlSerializationReader.ReadReferencingElement (System.String fixupReference) [0x00000]
  at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadMembers (System.Xml.Serialization.ClassMap map, System.Object ob, Boolean isValueList, Boolean readByOrder) [0x00000]
  at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadMessage (System.Xml.Serialization.XmlMembersMapping typeMap) [0x00000]
  at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadRoot () [0x00000]
  at System.Xml.Serialization.XmlSerializer.Deserialize (System.Xml.Serialization.XmlSerializationReader reader) [0x00000]

Le truc bizarre, c'est que si j'appelle une autre fonction qui retourne un int tout simple ou une string ca marche, mais dès qu'il s'agit d'un tableau ca plante, et j'me retrouve avec la liste d'erreur que j'ai mis au dessus.

Et j'avoue ne pas du tout comprendre pourquoi, donc si qq'un pouvait m'éclairer, je l'en remercie d'avance :)

8 réponses

TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
22 janv. 2007 à 00:59
Bug de mono.

::|The S@ib|:: MVP C#.NET
0
cs_blat Messages postés 102 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 5 juin 2007 1
22 janv. 2007 à 09:33
J'ai quasi la même erreur en developpant avec WebMatrix sous XP...

Unhandled Exception: System.InvalidOperationExceptio
<wbr>n: There is an error in XML
document (2, 455). ---> System.InvalidOperationExceptio<wbr>n: The specified type was

 not recognized: name='THpSvcWCleMatiere', namespace='http://www.indexeducation.
com/frahtm/HpSvcW.html', at <return xmlns=''>.
   at System.Xml.Serialization<wbr>.XmlSerializationReader<wbr>.GetPrimitiveType
(XmlQualif
iedName typeName, Boolean throwOnUnknown)
   at System.Xml.Serialization<wbr>.XmlSerializationReader<wbr>.ReadArray(String typeName,
 String typeNs)
   at System.Xml.Serialization<wbr>.XmlSerializationReader<wbr>.ReadReferencingElement
(Str
ing name, String ns, Boolean elementCanBeType, String& fixupReference)
   at System.Xml.Serialization<wbr>.XmlSerializationReader<wbr>.ReadReferencingElement(Str
ing name, String ns, String& fixupReference)

   at Microsoft.Xml.Serialization<wbr>.GeneratedAssembly.XmlSerializa<wbr>tionReaderBindin
gMatieres.Read9_ToutesLesMatier<wbr>esResponse()
   at Microsoft.Xml.Serialization<wbr>.GeneratedAssembly.ArrayOfObjec<wbr>tSerializer17.De</wbr></wbr>
serialize(XmlSerializationReade<wbr>r reader)
   at System.Xml.Serialization<wbr>.XmlSerializer.Deserialize(XmlReader xmlReader, St
ring encodingStyle, XmlDeserializationEvents events)

   --- End of inner exception stack trace ---
   at System.Xml.Serialization<wbr>.XmlSerializer.Deserialize(XmlReader xmlReader, St
ring encodingStyle, XmlDeserializationEvents events)
   at System.Xml.Serialization<wbr>.XmlSerializer.Deserialize
(XmlReader xmlReader, St
ring encodingStyle)
   at System.Web.Services.Protocols<wbr>.SoapHttpClientProtocol<wbr>.ReadResponse(SoapClie
ntMessage message, WebResponse response, Stream responseStream, Boolean asyncCal
l)

   at System.Web.Services.Protocols<wbr>.SoapHttpClientProtocol.Invoke(String methodN
ame, Object[] parameters)
   at proxy.BindingMatieres.ToutesLes<wbr>Matieres()
   at Client.Main(String[] args)</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
0
cs_blat Messages postés 102 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 5 juin 2007 1
22 janv. 2007 à 09:35
me*de j'ai buggé :/ désolé pour le doublon :/
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
22 janv. 2007 à 09:40
Pas de souci

Mx
MVP C# 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
22 janv. 2007 à 12:31
Ton webservice est ecrit avec une autre plateforme que .NET ?

::|The S@ib|:: MVP C#.NET
0
cs_blat Messages postés 102 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 5 juin 2007 1
22 janv. 2007 à 12:38
Je sais pas du tout avec quoi a été écris le web service...

J'ai des exemples pour l'utiliser en VBA, VBScript et Delphi... J'ai testé et ils fonctionnent, mais quand j'essaye d'adapter en C#... Ca bug :/
0
cs_blat Messages postés 102 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 5 juin 2007 1
23 janv. 2007 à 15:25
Après appel des services techniques de la boite qui a produit le web service le pb vient de chez eux... Ou du moins d'une restriction qu'ils font sur les tableaux et que microsoft .NET n'accepte pas car ils suivent la norme WS-I et non la norme W3C... Le service web serait donc innattaquable en .NET :/
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
23 janv. 2007 à 20:21
J'ai eu le même soucis il y a quelques mois, le problème à été résolu en passant au framework 2.0

::|The S@ib|:: MVP C#.NET
0
Rejoignez-nous