如何使用WSDL文件创建WCF服务(不进行调用)

时间:2009-06-04 12:14:16

标签: wcf wsdl

我有一个旧的WSDL文件,我想基于这个WSDL文件创建一个服务器。

WSDL是从ASMX生成的(我想但我不确定)。

我怎样才能做到这一点?


original question OP认为他需要根据WSDL创建客户端

5 个答案:

答案 0 :(得分:110)

使用svcutil,您可以从WSDL创建接口和类(数据协定)。

svcutil your.wsdl (or svcutil your.wsdl /l:vb if you want Visual Basic)

这将在C#(或VB.NET中的“your.vb”)中创建一个名为“your.cs”的文件,其中包含所有必需的项目。

现在,您需要创建一个类“MyService”,它将实现服务接口(IServiceInterface) - 或几个服务接口 - 这是您的服务器实例。

现在一个类本身并没有真正帮助 - 你需要在某个地方托管服务。您需要创建自己的ServiceHost实例来托管服务,配置端点等等 - 或者您可以在IIS中托管您的服务。

答案 1 :(得分:41)

如果你知道要搜索什么,那里有很好的资源。尝试“合同优先”和WCF。或“WSDL First”和WCF。

这是一个选择:

答案 2 :(得分:29)

将svcutil.exe与/sc开关一起使用以生成WCF合同。这将创建一个可以添加到项目中的代码文件。它将包含创建服务所需的所有接口和数据类型。使用/o开关更改输出位置,或者您可以在运行svcutil.exe的文件夹中找到该文件。默认语言是C#,但我认为(我从未尝试过)你应该能够使用/l:vb来改变它。

svcutil /sc "WSDL file path"

如果您的WSDL有任何支持的XSD文件,那么在WSDL之后将它们作为参数传递。

svcutil /sc "WSDL file path" "XSD 1 file path" "XSD 2 file path" ... "XSD n file path"

然后创建一个新类,它是您的服务并实现您刚刚创建的合同接口。

答案 3 :(得分:7)

您可以使用svcutil.exe生成客户端代码。这将包括服务合同的定义以及所需的任何数据合同和故障合同。

然后,只需删除客户端代码:实现服务合同的类。然后,您需要自己在服务中实施它们。

答案 4 :(得分:3)

使用Visual Studio中的“添加服务引用”工具,可以将地址插入:

  

文件:///path/to/wsdl/file.wsdl

它会正确加载。