0

我正在构建一个合同优先的 SOAP 客户端。当我尝试使用 svcutil 生成代理类时,我收到下面列出的错误消息并且没有生成任何类。一些错误消息是荷兰语,但它们类似于MSDN 上这个问题中的错误。该问题的海报提供了以下解决方案:

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

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

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

wsdl相关文件可在线获取。据我所知,它们都是有效的。

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

谢谢,米尔。

错误:Er is een validatiefout opgetreden op een schema dat tijdens het exporteren werd gegenereerd: Bron: Regel: 17518 Kolom: 6 Validatiefout: Het attribuut groepsnaam wordt genegeerd omdat de waarde 'prohibited' (verboden) voor attribuutgebruik er alleen voor zorgt dat he van een identieke attribuutnaam uit de basictypedefinitie wordt verhinderd。

错误:Er is een validatiefout opgetreden op een schema dat tijdens het exporteren werd gegenereerd: Bron: Regel: 17519 Kolom: 6 Validatiefout: Het attribuut elementnaam wordt genegeerd omdat de waarde 'prohibited' (verboden) voor attribuutgebruik er alleenmen voor zorgt dat het over van een identieke attribuutnaam uit de basictypedefinitie wordt verhinderd。

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

错误:Kan wsdl:binding niet importeren 详细信息:Er is een 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 een 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 选项。

4

1 回答 1

0

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

在我删除这些之后, svcutil 确实生成了代理。

因此,至少在这种情况下,问题不是多重包含,而是错误消息。现在,我需要为现在丢失的故障消息找出解决方法。

我会尽量保持这个答案的更新。

于 2010-06-22T15:21:39.727 回答