2010-01-05 4 views
1

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.

+0

Vous avez recompilé après la mise à jour, non? Sans vouloir vous offenser .. –

+0

Oui, j'ai recompilé la solution complète – Albert

+0

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? –

Répondre

0
s:enumeration value="Invalid" /> 

manque une partie:

<s:enumeration value="Invalid" /> 

est-ce juste une faute de frappe? et est l'espace dans

< s:simpleType name="Sources"> 

au « < de » un problème?

+0

oui c'est une faute de frappe intentionnelle Je dois l'éditer de cette façon puisque la page supprimait les parties XML – Albert

Questions connexes