我正在建立一个契约优先的SOAP客户端。当我尝试使用svcutil生成代理类时,我得到下面列出的错误消息,并且不生成任何类。一些错误消息是荷兰语,但它们与this question on MSDN中的错误类似。该问题的海报提供了以下解决方案:
[...] WCF发布向导不喜欢多个包含(确切地说 - 超过3个)。所以我将我的Schema包含减少到零[...]
由于我无法控制wsdl和xsd,并且由于存在很多并且它们很大,因此减少架构包含会导致严重的可维护性问题。 所以在我尝试之前,我想知道这是否确实是导致问题的原因。我无法确认这一点。
有没有人听说这是问题的原因?还有其他我可以尝试的事情吗?
wsdl和related 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选项。
答案 0 :(得分:0)
有人告诉我,svcutil.exe和wsdl.exe不能很好地处理在wsdl中定义的错误消息。
删除后,svcutil确实生成了代理。
所以,至少在这种情况下,问题不是多重包含,而是错误消息。现在,我需要找出现在缺少的错误消息的解决方法。
我会尝试更新此答案。