为什么我不能在Visual Studio中从此WSDL文件生成客户端代码?

时间:2011-03-08 13:51:52

标签: .net visual-studio web-services wsdl

我正在尝试为Visual Studio 2010中的cleverreach API(WSDL文件:http://api.cleverreach.com/soap/interface_v4.php?wsdlhttp://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)。所以我不确定发生了什么。

我想知道的事情:

  • 为什么Visual Studio不能为此Web服务创建客户端代码?
  • 我该如何解决这个问题?

谢谢,

阿德里安

3 个答案:

答案 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年再次测试。

希望有所帮助:)