Salut, je suis un problème avec aC# WebService, il fonctionnait très bien mais tout d'un coup, il a cessé de travailler, je reçois cette erreur:WebService Problème Enum Value est pas valide
Exception non gérée: System.InvalidOperationException: Il y a une erreur dans le document XML System.InvalidOperationException: « Big » est pas une valeur valide pour les sources
Sources est un ENUM, alors je suis allé à mon wsdl un était ainsi:
< s:simpleType name="Sources">
<s:restriction base="s:string">
s:enumeration value="Invalid" />
<s:enumeration value="Any" />
<s:enumeration value="RM" />
<s:enumeration value="RV" />
<s:enumeration value="RD" />
<s:enumeration value="LV" />
</s:restriction>
</s:simpleType>
je pouvais vois qu'il n'a pas le 'Big «Valeur, donc je clique sur la référence WebService puis mise à jour WebReference, alors je suis allé à la wsdl à nouveau et je pouvais voir la « valeur Big »
< s:simpleType name="Sources">
<s:restriction base="s:string">
<s:enumeration value="Invalid" />
<s:enumeration value="Any" />
<s:enumeration value="RM" />
<s:enumeration value="RV" />
<s:enumeration value="RD" />
<s:enumeration value="LV" />
<s:enumeration value="Big" /> <--------- This one was added
</s:restriction>
</s:simpleType>
Cependant, quand je l'ai couru à nouveau, je me suis même erreur.
Exception non gérée: System.InvalidOperationException: Il y a une erreur dans le document XML System.InvalidOperationException: 'Big' est pas une valeur valide pour les sources
Comment pourrais-je résoudre ce problème? Il semble que la mise à jour de la référence webservice ne soit pas suffisante. Est-ce que je manque quelque chose?
Merci d'avance.
Albert
--update
J'ai ajouté ceci afin de pouvoir entrer dans le désérialiseur
? Xml version = "1.0" encoding = "utf-8"?> configuration > System.Diagnostics> commutateurs> add name = valeur "XmlSerialization.Compilation" = "4" /> /commutateurs> /system.diagnostics> /configuration>
Référence: http://msdn.microsoft.com/en-us/library/aa302290.aspx
Ce que j'ai trouvé
Read1_Sources mondiale :: ReVal.Service.BE.WebService.Sources (string s) { commutateur (s) {@ cas "non valide" : return global :: ReVal.Service.BE.WebService.Sources. @ Non valide; case @ "Tout": return global :: ReVal.Service.BE.WebService.Sources. @ Tout; case @ "RM": return global :: ReVal.Service.BE.WebService.Sources. @ RM; case @ "RV": return global :: ReVal.Service.BE.WebService.Sources. @ RV; case @ "RD": return global :: ReVal.Service.BE.WebService.Sources. @ RD; case @ "LV": return global :: ReVal.Service.BE.WebService.Sources. @ LV; par défaut: throw CreateUnknownConstantException (s, typeof (global :: ReVal.Service.BE.WebService.Sources)); } }
La valeur grande n'est pas dans XMLSerializationReader du service Web.
Vous avez recompilé après la mise à jour, non? Sans vouloir vous offenser .. –
Oui, j'ai recompilé la solution complète – Albert
Vous référez-vous au WebService via une référence Web ou en tirant le fichier WSDL et en l'exécutant via l'outil pour générer le proxy? –