我正在尝试为Visual Studio 2010中的cleverreach API(WSDL文件:http://api.cleverreach.com/soap/interface_v4.php?wsdl,http://api.cleverreach.com/soap/interface_v4.php处的文档)编写.NET客户端。
问题是无论我做什么,似乎都没有办法为这个API创建C#代码。
我尝试过两种方式 - 添加服务引用和Web引用。在这两种方式中,都没有为API的方法生成代码(类似于createList或addBatch)。
我也尝试过使用命令行:
svcutil.exe / language:cs /out:GeneratedProxy.cs /config:app.config http://api.cleverreach.com/soap/interface_v4.php?wsdl
这只是给我一个错误信息:
生成文件...警告:没有代码 生成了。如果你想要 生成一个客户端,这可能是 因为元数据文件确实如此 不包含任何有效合同或 服务或因为所有 合同/服务被发现 存在于/ reference assemblies中。 确认您已通过全部 元数据文档到工具。
当我在Web浏览器中查看WSDL文件时,会提到我正在寻找的方法(例如createList)。所以我不确定发生了什么。
我想知道的事情:
谢谢,
阿德里安
答案 0 :(得分:2)
最有可能的原因是,您没有获得任何代码的原因是因为WSDL无效。只需在XMLSpy中打开它就会讲述这个故事:
Invalid XML schema: 'Attribute 'firstname' is not allowed in element <xsd:element>'
那是
<xsd:element name="firstname" type="xsd:string" firstname="registered"/>
您可能希望与供应商联系并询问他们的想法。
答案 1 :(得分:1)
这有点旧,但如果它对任何人都有帮助,我可以使用Create web service proxy in Visual Studio from a WSDL file中描述的wsdl.exe
工具:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>wsdl http://api.cleverreach.com/soap/interface_v5.1.php?wsdl
当然,wsdl似乎没有错误也无济于事。
答案 2 :(得分:0)
这是我的第一个堆栈溢出答案,所以如果不符合通常的标准我会道歉。
我使用visual studio测试了该服务,我创建了一个新的Project(.Net Application),在这个URL“http://api.cleverreach.com/soap/interface_v4.php?wsdl”添加了该服务。请注意,您将需要查询字符串'?wdsl'),通过添加网络参考,我可能在您的帖子中误解了您的网址,但看起来您要删除它。
我验证了WSDL文件。我在VS 2008中测试过,并将在2010年再次测试。
希望有所帮助:)