1

我正在尝试为另一个实体公开的 SOAP 服务创建服务代理。运行后:

svcutil.exe https://<domain-omitted>/feed30/clientdataservice.asmx?wsdl

我收到以下错误:

Attempting to download metadata from 'https://<domain-
omitted>/feed30/clientdataservice.asmx' using WS-Metadata Exchange or DISCO
Generating files...
Warning: No code was generated.
If you were trying to generate a client, this could be because the metadata documents did not contain any valid contracts or services or because all contracts/services were discovered to exist in /reference assemblies. Verify that you passed all the metadata documents to the tool.

Warning: If you would like to generate data contracts from schemas make sure to use the /dataContractOnly option.

我过去曾看到,这可能与实用程序无法访问 WSDL 中的所有 xmlns 路径有关。那些是:

xmlns:s="http://www.w3.org/2001/XMLSchema" 
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" 
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" 
xmlns:s2="http://microsoft.com/wsdl/types/" 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"

WSDL 的导入语句中包含的唯一一个是 xmlns:s2="http://microsoft.com/wsdl/types/"

我找不到我曾经看到的信息,您可以在其中手动下载每个模式文档并将其作为参数提供给 svcutil 实用程序。我是在正确的轨道上,还是应该寻找其他地方?

任何帮助表示赞赏。

4

1 回答 1

2

根据 MarvinSmit 的评论,我手动将 WSDL 数据下载到本地文件中。我在这里通过 Bing找到了对“ http://microsoft.com/wsdl/types/ ”的引用,“ http://msdn.microsoft.com/en-us/library/jj675594(v=office.12)。 .aspx '. 我将它下载到它自己的 .xsd 文件中。然后,我将本地 WSDL 中的导入引用替换为本地 XSD 文件的引用。Ran svcutil 指向我的本地 WSDL 文件和poof,它生成了一个有效的代理。

于 2013-11-11T17:15:08.250 回答