如何从wsdl创建代理类?

时间:2012-03-22 15:14:17

标签: c# wsdl

C: \ Program Files \ Microsoft Visual Studio 10.0 \ VC> svcutil wsdl.wsdl / out: Proxy.
Microsoft (R) Service Model Metadata Tool
[Microsoft (R) Windows (R) Communication Foundation, Version 3.0.4506.2152]
Copyright (c) Microsoft Corporation. All rights reserved.

Error: Can not import wsdl: portType
Details: Generated an exception at run time extension of import WSDL:
System.ServiceModel.Description.DataContractSerializerMessageContractImporter
Error: element complexType "http://api-new.begun.ru/index.php:Region" is already a Listing
flax.
XPath to Error Source: / / wsdl: definitions [@ targetNamespace = 'http://api-new.be
gun.ru / index.php '] / wsdl: portType [@ name =' AdvertiserServicePortType ']


Error: Can not import wsdl: binding
Details: Failed to import wsdl: portType, on which the wsdl: binding.
XPath to wsdl: portType: / / wsdl: definitions [@ targetNamespace = 'http://api-new.begun
.ru / index.php '] / wsdl: portType [@ name =' AdvertiserServicePortType ']
XPath to Error Source: / / wsdl: definitions [@ targetNamespace = 'http://api-new.be
gun.ru / index.php '] / wsdl: binding [@ name =' AdvertiserServiceBinding ']


Error: Can not import wsdl: port
Details: Failed to import wsdl: binding, which depends on the wsdl: port.
XPath to wsdl: binding: / / wsdl: definitions [@ targetNamespace = 'http://api-new.begun.
ru / index.php '] / wsdl: binding [@ name =' AdvertiserServiceBinding ']
XPath to Error Source: / / wsdl: definitions [@ targetNamespace = 'http://api-new.be
gun.ru / index.php '] / wsdl: service [@ name =' AdvertiserService '] / wsdl: port [@ name =' Adve
rtiserServicePort ']


Generating files ...
Warning: No code was generated.
If you were trying to generate a client, this could be because the metadata docu
ments did not contain any valid contracts or services
or because all contracts / services were discovered to exist in / reference assembl
ies. 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.

如何解决?我需要C#中的代理类

更新

http://www.2shared.com/file/JAoRmgXI/wsdl.html

1 个答案:

答案 0 :(得分:3)

我猜wsdl引用了不在同一目录下的其他一些文件(.xsd?)。

更新 Region 的第一个错误是因为 Region 定义了两次(第253行和第274行)。
Update2: RegionArray 也会声明两次。客户端代理生成通过删除两次两次声明并使用 wsdl.exe wsdl.exe wsdl.wsdl /out:Proxy.cs来实现。