使用svcutil生成代理时出错

时间:2010-06-21 07:48:14

标签: c# wcf soap wsdl svcutil.exe

我正在建立一个契约优先的SOAP客户端。当我尝试使用svcutil生成代理类时,我得到下面列出的错误消息,并且不生成任何类。一些错误消息是荷兰语,但它们与this question on MSDN中的错误类似。该问题的海报提供了以下解决方案:

  

[...] WCF发布向导不喜欢多个包含(确切地说 - 超过3个)。所以我将我的Schema包含减少到零[...]

由于我无法控制wsdl和xsd,并且由于存在很多并且它们很大,因此减少架构包含会导致严重的可维护性问题。 所以在我尝试之前,我想知道这是否确实是导致问题的原因。我无法确认这一点。

有没有人听说这是问题的原因?还有其他我可以尝试的事情吗?

wsdlrelated files可在线获取。 据我所知,它们都是有效的。

我尝试使用arguments / dcOnly和/ ser:XmlSerializer运行svcutil,但这没有帮助。我也尝试将操作集减少到我需要的程度,但这也无济于事。

谢谢,Miel。

  

错误:错误是对于opgetreden op een schema dat tijdens het exporteren werd gegenereerd:   布龙:   Regel:17518 Kolom:6   Validatiefout:Het attribuut groepsnaam wordt genegeerd omdat de waarde'infate'(verboden)voor attribuutgebruik er alleen voor zorgt dat het overnemen van een identieke attribuutnaam uit de basistypedefinitie wordt verhinderd。

     

错误:错误是对于opgetreden op een schema dat tijdens het exporteren werd gegenereerd:   布龙:   Regel:17519 Kolom:6   Validatiefout:Het attribuut elementnaam wordt genegeerd omdat de waarde'abarent'(verboden)voor attribuutgebruik er alleen voor zorgt dat het overnemen van een identieke attribuutnaam uit de basistypedefinitie wordt verhinderd。

     

错误:Kan wsdl:portType niet importeren   详细信息:Er is eit uitzondering opgetreden tijdens het uitvoeren van een WSDL-importextensie:System.ServiceModel.Description.XmlSerializerMessageContractImporter   Fout:Kan geen ongeldige schema的importeren。 Compilatie op de XmlSchemaSet是mislukt。   XPad naar foutbron:// wsdl:definitions [@targetNamespace ='http://www.egem.nl/StUF/sector/zkn/0310'] / wsdl:portType [@ name ='BeantwoordVraag']

     

错误:Kan wsdl:绑定niet importeren   详情:Er is eout fout opgetreden bij het importeren van een wsdl:portType waar de wsdl:binding van afhankelijk is。   XPad naar wsdl:portType:// wsdl:definitions [@targetNamespace ='http://www.egem.nl/StUF/sector/zkn/0310'] / wsdl:portType [@ name ='BeantwoordVraag']   XPad naar foutbron:// wsdl:definitions [@targetNamespace ='http://www.egem.nl/StUF/sector/zkn/0310'] / wsdl:binding [@ name ='SOAPBeantwoordVraag']

     

错误:Kan wsdl:port niet importeren   详情:Er is eout fout opgetreden bij het importeren van een wsdl:binding waar de wsdl:port van afhankelijk is。   XPad naar wsdl:binding:// wsdl:definitions [@targetNamespace ='http://www.egem.nl/StUF/sector/zkn/0310'] / wsdl:binding [@ name ='SOAPBeantwoordVraag']   XPad naar foutbron:// wsdl:definitions [@targetNamespace ='http://www.egem.nl/StUF/sector/zkn/0310'] / wsdl:service [@ name ='BeantwoordVraag'] / wsdl:port [@ name ='BeantwoordVraag']

     

生成文件......   警告:未生成任何代码。   如果您尝试生成客户端,可能是因为元数据文档不包含任何有效的合同或服务   或者因为发现所有合同/服务都存在于/ reference程序集中。验证您是否已将所有元数据文档传递给该工具。

     

警告:如果您想从架构生成数据合同,请确保使用/ dataContractOnly选项。

1 个答案:

答案 0 :(得分:0)

有人告诉我,svcutil.exe和wsdl.exe不能很好地处理在wsdl中定义的错误消息。

删除后,svcutil确实生成了代理。

所以,至少在这种情况下,问题不是多重包含,而是错误消息。现在,我需要找出现在缺少的错误消息的解决方法。

我会尝试更新此答案。