我们项目中的一个需求如下:
我们只从客户端获得WSDL和XSD文件。我们的任务是基于这些WSDL和XSD文件生成SOAP消息,并提取SOAP正文。
我们应该进行的第一步是从给定的WSDL和XSD文件生成客户端代理文件。主WSDL文件有多个导入,导入的XSD文件也有一些导入。我曾尝试使用SvcUtil.exe工具来完成客户端代理文件的生成,但出现了错误。
我是这样运行SvcUtil.exe的:
E:\Projekti\WCF\XSD>svcutil /noconfig rosrazna.ru.xsd.SmevUnifoService.wsdl roskazna.ru.xsd.ResponseTemplate.xsd roskazna.ru.xsd.PGU_ImportRequest.xsd roskazna.ru.xsd.PGU_DataRequest.xsd roskazna.ru.xsd.PGU_ChargesResponse.xsd roskazna.ru.xsd.ExportPaymentsResponse.xsd roskazna.ru.xsd.ExportIncomesResponse.xsd roskazna.ru.xsd.ExportQuittanceResponse.xsd roskazna.ru.xsd.Ticket.xsd
但是,出现了这个错误:
Microsoft (R)服务模型元数据工具Microsoft (R) Windows (R) Communication Foundation,版本3.0.4506.2152版权所有(c) Microsoft Corporation。版权所有。
正在生成文件...警告:未生成任何代码。如果您正在尝试生成客户端,这可能是因为元数据文档不包含任何有效的约定或服务,或者因为发现所有约定/服务都存在于/reference程序集中。验证是否已将所有元数据文档传递给该工具。
警告:如果您希望从模式生成数据契约,请确保使用/dataContractOnly选项。
我必须指出,我没有将从导入的XSD文件导入到SvcUtil.exe命令中的主WSDL文件中。我不知道该怎么说。
那么,如何解决这个问题呢?
提前谢谢你。
Goran
发布于 2012-10-06 03:25:51
@Goran,将所有引用的xsd文件复制到与wsdl相同的位置。然后,在命令提示符下使用svcutil时,列出那里的所有*.xsd,或者放入一个xsd,如下所示:
E:\Projekti\WCF\XSD>svcutil /noconfig goransWsdl.wsdl *.xsdPS:您似乎已经提到了所有的xsd。
https://stackoverflow.com/questions/12313735
复制相似问题