2009-08-03 145 views
12

web服务这也许是一个非常简单的问题,但我无法找到一个答案:生成从WSDL

对于客户端,我需要HOST一个web服务。客户端发给我一个wsdl文件,web服务应该'执行'。我该如何解决这个问题?我已经生成了任意数量的客户端 - 恶意软件,但这是相反的。我可以同时使用ASP.NET 2.0 webservices或Windows Communication Foundation。

+0

为现有的类生成WSDL =“自下而上的策略”与现有的WSDL =“自上而下的策略”(Wikipedia)生成类骨架 – JohnB 2012-08-10 00:47:21

回答

15

wsdl.exe /server

生成一个抽象类,基于合同的XML Web服务。 默认为生成客户端 代理类。当使用 /参数选项时,该值是包含 “服务器”的 元素。

你可以做svcutil.exe的类似的事情WCF-类似:

svcutil.exe的thewsdl.wsdl /语言:C#/out:ITheInterface.cs(我没有测试这个) 。

编辑 - 约翰桑德斯在他的回答中赞成WCF方法的好处 - 我也推荐这一点。

+0

真的那么简单吗?我已经多次使用过wsdl.exe,但不知道/ server开关。我会测试并报告 – edosoft 2009-08-03 08:05:46

+1

Yeap。 WSDL第一次开发是一种有效的方法 - 请参阅本文:http://blogs.msdn.com/dotnetinterop/archive/2008/09/24/wsdl-first-development-with-wcf.aspx – RichardOD 2009-08-03 08:09:35

0

您可以使用WSDL工具从微软到生成服务器的接口和实现这些

这里是WSDL实用的简短说明。

Wsdl.exe用 - 实用程序生成的XML Web服务客户端代码和XML Web使用ASP.NET从WSDL文件合同,XSD架构 服务 和.discomap 发现文件。该工具可以与disco.exe一起使用。

2

你可以用这个WSDL(wissd'le)文件做很多事情。

从手工做的WS类使用自动生成的类从Wsdl.exe用

咱们想象为你的榜样,你有,这WDSL(从WebServiceX.Net tooked)


创建一个C#自动生成的代理您转到您的命令提示符并编写:

wsdl /language:cs /protocol:soap /out:C:\myProxyScripts http://www.webservicex.net/TranslateService.asmx?wsdl 

注意:\ Program Files文件\微软的SDK \的Windows \ V6.1 \ Bin文件夹,你会发现WSDL:你的C内。EXE或只是做一个DIR/S的内部C:\ Program Files文件\

如果你想Visual Basic中,只是用/语言:VB/L:VB

/语言: 用于生成的代理类的语言。选择'CS', 'VB','JS','VJS','CPP'或为实现System.CodeDom.Compiler.CodeDomProvider的类提供完全限定的名称。

默认 语言为'CS'(CSharp)。简写形式是'/ l:'。

这个命令会把你的C:\ myProxyScripts放到自动生成的代理中。如果你使用计算机的WSDL文件,只需网址更改为完整路径,例如

wsdl /language:cs /protocol:soap /out:C:\myProxyScripts C:\myProxyScripts\myWsdlFile.wsdl 

你生成的代理将被称为服务名称,您在我们的示例中指定的那个:

<wsdl:service name="TranslateService"> 

我希望这可以帮助你,理解WSDL,自动生成的代理,并且你现在可以管理你的一切,以满足你的客户的愿望。

14

实际上,您应该使用svcutil.exe而不是wsdl.exe来做到这一点。 WSDL.EXE是Microsoft现在认为是“遗留”代码的ASMX Web服务技术的一部分,该代码不会修正错误。