2012-02-15 33 views
5

当试图创建一个服务的实例,我得到一个Web服务:方法不能反映异常

“方法无法体现”

例外。在内部异常挖掘更深层次的下跌显示:

“类型‘WebServiceClient.com.compamy.string1’和 ‘WebServiceClient.com.company.string’都使用XML类型名称, ‘串’,从namespace'http://www.w3.org/2001/XMLSchema'。使用XML 属性为 类型指定唯一的XML名称和/或名称空间。“

该死的东西想从我身上得到什么?它是由VS2010自动生成的代码...为什么我必须摆弄它?

这里有两种类型:

[GeneratedCode("System.Xml", "4.0.30319.233")] 
[Serializable] 
[DebuggerStepThrough] 
[DesignerCategory("code")] 
[XmlType(TypeName = "string", Namespace = "http://www.w3.org/2001/XMLSchema")] 
[XmlRoot("FileName", Namespace = "http://company.com/api3/Content/Download/", IsNullable = true)] 
public partial class string1 : SoapHeader 

[GeneratedCode("System.Xml", "4.0.30319.233")] 
[Serializable] 
[DebuggerStepThrougt] 
[DesignerCategory("code")] 
[XmlTypeAttribute(Namespace = "http://www.w3.org/2001/XMLSchema")] 
[XmlRootAttribute("SessionKey", Namespace = "ns", IsNullable = true)] 
public partial class @string : SoapHeader 
+0

为什么不把它命名为'StringHeader:SoapHeader'? – abatishchev 2012-02-15 14:27:20

回答

7

我找到了一个解决办法,但我无法解释为什么这是工作。 我只是删除所有方法的所有类型映射属性,我不会再有任何错误。

行删除:

[XmlType(TypeName = "string", Namespace = "http://www.w3.org/2001/XMLSchema")] 

如果有人能解释我将不胜感激!

+0

您是否遇到过为什么会发生这种情况的解决方案,我遇到了同样的问题,但使用了JSON。 – Marcus 2013-10-31 15:24:23

+1

当我从C#客户端调用用java编写的web服务(不确定是否重要)时,我遇到了同样的问题,它也删除了类型映射属性并且它工作正常!真的不明白为什么! – 2015-10-20 13:09:03

+1

你有点说,为什么它不工作只是通过重申错误,你可以看到为什么在你的属性名称空间不同。期望该对象的命名空间期望一个字符串类型,或者至少在序列化时该节点将是“字符串”。我的类型和错误类似于你的命名空间。我试着用像你那样的“w3”发送我的xml,然后用一个可用的soap库,当我引用wsdl所在的api的url时,它终于奏效了......如果你使用wsdl来获得你的模式也许试试看吧 – user1040975 2017-07-19 07:30:06