3

我必须在我的 .net 应用程序中集成几个现有的 web 服务。但不幸的是,调用 svcutil 工具会导致错误消息:

Microsoft (R) 服务模型元数据工具 [Microsoft (R) Windows (R) Communication Foundation,版本 3.0.4506.2152] 版权所有 (c) Microsoft Corporation。版权所有。

错误:无法导入 wsdl:绑定详细信息:找不到http://grupobancolombia.com/intf/Clientes/GestionClientes/EnviarRespuestaVerificarIdentidadCliente/V1.0:EnviarRespuestaVerifi carIdentidadCliente 的定义。 缺少命名空间http://grupobancolombia.com/intf/Clientes/GestionClientes/EnviarRespuestaVerificarIdentidadCliente/V1.0的服务描述。参数名称:名称 XPath 到错误源://wsdl:definitions[@targetNamespace=' http://grupobancolombia.com/intf/Clientes/GestionClientes/EnviarRespuestaVerificarIdentidadCliente/E nlace/V1.0']/wsdl:binding[@name ='EnviarRespuestaVerificarIdentidadCliente_HttpBinding']

错误:无法导入 wsdl:port 详细信息:导入 wsdl:port 所依赖的 wsdl:binding 时出错。XPath 到 wsdl:binding: //wsdl:definitions[@targetNamespace=' http://grupobancolombia.com/intf/Clientes/GestionClientes/EnviarRespuestaVerificarIdentidadCliente/E nlace/V1.0']/wsdl:binding[@name='EnviarRespuestaVerificarIdentidadCliente_HttpBinding '] XPath 到错误源://wsdl:definitions[@targetNamespace=' http://grupobancolombia.com/intf/Clientes/GestionClientes/EnviarRespuestaVerificarIdentidadCliente/Enlace/V1.0']/wsdl:service[@name= ' EnviarRespuestaVerificarIdentidadCliente']/wsdl:port[@name='EnviarRespuestaVerificarIdentidadCliente_HttpPort']

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

警告:如果您想从模式生成数据协定,请确保使用 /dataContractOnly 选项。有谁知道是什么导致了这个问题?

4

1 回答 1

2

我看到了同样的问题。我在一个文件夹中有一组 30 多个 wsdl 文件,我正在尝试为它们创建 C# 客户端类。

如果我执行以下操作

svcutil /noconfig /namespace:*,My.Required.Namespace *.wsdl

我看到你提到的很多错误(无法导入 wsdl:binding)。

但是,一次选择一个文件

svcutil /noconfig /namespace:*,My.Required.Namespace a.wsdl

经常工作;有时我必须包含另一个文件,例如

svcutil /noconfig /namespace:*,My.Required.Namespace b.wsdl c.wsdl

当由于对 c.wsdl 的依赖而尝试在 b.wsdl 上运行 svcutil 失败时,这是必要的。

底线:我不确定为什么我不能一次性为所有这些服务定义创建合同,但这似乎是不可能的。我仍然对文件之间的共享类型有很大的问题;这意味着我实际上必须编辑第三方 wsdl 或自动生成的代码,以使事情能够正确编译和运行。

于 2010-07-28T09:31:03.417 回答