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

Rah*_*aha 94 wcf wsdl

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

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

我怎样才能做到这一点?


OP认为他需要基于WSDL 创建客户端原始问题.

mar*_*c_s 110

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

svcutil your.wsdl (or svcutil your.wsdl /l:vb if you want Visual Basic)
Run Code Online (Sandbox Code Playgroud)

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

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

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

  • "svcutil your.wsdl your.xsd"是我工作所需要的!谢谢! (14认同)
  • 查看此SO答案,了解有关以svcutil喜欢的格式下载wsdl和xsd的信息.http://stackoverflow.com/questions/286657/what-is-the-best-way-to-download-all-of-the-wsdl-files-exposed-by-a-wcf-service (2认同)

Che*_*eso 41

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

这是一个选择:

  • 对于遵循WSDL-First*文章的基本概述的任何人:记下关于`ReplyAction ="*"`的评论.看来你需要摆脱它.该评论有一系列解释给出了推理,但我还没看过. (3认同)
  • WSCF 的新链接:https://github.com/WSCF/WSCF (2认同)

Den*_*lla 29

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

svcutil /sc "WSDL file path"
Run Code Online (Sandbox Code Playgroud)

如果您的WSDL有任何支持的XSD文件在WSDL之后作为参数传递.

svcutil /sc "WSDL file path" "XSD 1 file path" "XSD 2 file path" ... "XSD n file path"
Run Code Online (Sandbox Code Playgroud)

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


Joh*_*ers 7

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

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


Vag*_*Gon 5

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

file:///path/to/wsdl/file.wsdl

它会正确加载。