WebService问题枚举值无效

时间:2010-01-05 16:44:49

标签: c# xml web-services enums

您好我遇到了c#WebService的问题,它工作正常但突然停止工作,我收到此错误:

未处理的异常:System.InvalidOperationException:XML文档中存在错误 System.InvalidOperationException:'Big'不是Sources的有效值

来源是一个枚举,所以我去了我的wsdl就是这样:

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

我可以看到它没有'Big'值,所以我点击WebService引用然后更新WebReference,然后我再次转到wsdl,现在我可以看到'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>

然而,当我再次运行它时,我得到了同样的错误。

未处理的异常:System.InvalidOperationException:XML文档中存在错误 System.InvalidOperationException:'Big'不是Sources的有效值

我该如何解决这个问题? 似乎更新webservice参考是不够的。我错过了什么吗?

提前致谢。

阿尔伯特

- 更新

我添加了这个以便能够进入反序列化器

?xml version =“1.0”encoding =“utf-8”?&gt;  结构&gt;     System.Diagnostics程序&GT;         开关&GT;             add name =“XmlSerialization.Compilation”value =“4”/&gt;         /开关&GT;     /system.diagnostics> /结构&gt;

参考:http://msdn.microsoft.com/en-us/library/aa302290.aspx

这是我发现的

global :: ReVal.Service.BE.WebService.Sources Read1_Sources(string s){             switch(s){                 case @“Invalid”:return global :: ReVal.Service.BE.WebService.Sources。@ Invalid;                 case @“Any”:return global :: ReVal.Service.BE.WebService.Sources。@ Any;                 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;                 default:throw CreateUnknownConstantException(s,typeof(global :: ReVal.Service.BE.WebService.Sources));             }         }

大值不在Web服务的XMLSerializationReader中。

1 个答案:

答案 0 :(得分:0)

  s:enumeration value="Invalid" />

缺少一部分:

 <s:enumeration value="Invalid" /> 

这只是一个错字?

中的空格
< s:simpleType name="Sources">

在“&lt; s”问题上?