我在Visual Studio中从第三方WSDL添加服务引用,但它不是创建代理类,只是一个空命名空间的文件:
WSDL地址为http://wwwh.cnj.jus.br/sgt/sgt_ws.php?wsdl
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.18052
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace MyApp.MyServiceReference {
}
我该如何解决?
更新
我运行了命令
SvcUtil.exe /t:code "http://wwwh.cnj.jus.br/sgt/sgt_ws.php?wsdl" /d:D:\test
并出现以下错误:
错误:无法导入wsdl:portType详细信息:抛出异常 在运行WSDL导入扩展时: System.ServiceModel.Description.XmlSerializerMessageContractImporter 错误:引用类型 “http://schemas.xmlsoap.org/soap/encoding/:Array”仅对 编码的SOAP。 XPath到错误源: // WSDL:定义[@targetNamespace = 'http://wwwh.cnj.jus.br/sgt/sgt_ws.php'] / WSDL:portType的[@名称= 'sgt_ws_methodsPort']
错误:无法导入wsdl:binding详细信息:导入时出错 wsdl:binding依赖的wsdl:portType。 XPath到 WSDL:端口类型: // WSDL:定义[@targetNamespace = 'http://wwwh.cnj.jus.br/sgt/sgt_ws.php'] / WSDL:portType的[@名称= 'sgt_ws_methodsPort'] XPath到错误源: // WSDL:定义[@targetNamespace = 'http://wwwh.cnj.jus.br/sgt/sgt_ws.php'] / WSDL:结合[@名称= 'sgt_ws_methodsBinding']
错误:无法导入wsdl:port详细信息:导入时出错 wsdl:wsdl:port依赖的绑定。 XPath到 WSDL:结合: // WSDL:定义[@targetNamespace = 'http://wwwh.cnj.jus.br/sgt/sgt_ws.php'] / WSDL:结合[@名称= 'sgt_ws_methodsBinding'] XPath到错误源: // WSDL:定义[@targetNamespace = 'http://wwwh.cnj.jus.br/sgt/sgt_ws.php'] / WSDL:服务[@名称= 'sgt_ws_methodsService'] / WSDL:端口[@名称= 'sgt_ws_methodsPort']
警告:未生成任何代码。如果你试图生成一个 客户端,这可能是因为元数据文档没有包含 任何有效的合同或服务,或因为所有的合同/服务 发现存在于/ reference程序集中。确认您通过了 该工具的所有元数据文档。
警告:如果您想从架构生成数据合同 确保使用/ dataContractOnly选项。
答案 0 :(得分:1)
当我添加Web Reference
而不是Service Reference
时,它有效。