启动Contract First WCF或Web Service的最佳方式

本文关键字:Service 最佳 方式 Web Contract First WCF 启动 | 更新日期: 2023-09-27 17:57:59

我得到了一个WSDL文件和几个XSD文件来构建web服务。现在我正试着设置它来接收请求并做出响应。

我使用WebServices的经验仅限于带有asmx文件等的旧asp版本。

XSD文件中有很多信息,我不想手工构建类,也不想确切地理解这会带来什么(我想只是一个xml可序列化类,但还没有研究过)。

从哪里开始?我研究了WCF,但它对我来说完全陌生,所以我宁愿使用旧的风格,但我很难找到任何关于如何设置它的信息,或者从XSD文件中自动生成类的信息。

我确实尝试过WCF,但当我尝试生成WebService代码时,WSCF blue会给我错误(Cannot import wsdl:portType)。svcutil.exe将生成XSD文件信息的一些,但由于某些原因,不会生成所有信息。

所以有两个问题:

  1. 我如何从XSD文件生成一些存根类来进行

  2. 不使用wscf-blue的WSDL和多个XSD文件生成WCF服务的教程/演练?

启动Contract First WCF或Web Service的最佳方式

假设您有一个WSDL开始,您可以执行以下操作。当我的任务是在现有的web服务之上实现一个中间调度层时,我就这样做了。新服务应该公开与原始服务相同的接口,但在内部执行不同的功能。请注意,我在这里谈论的是"经典"WCF服务(基于SOAP)。

步骤1:从WSDL 为服务接口创建代码

wsdl.exe /si /out:<targetfolder> <url-to-wsdl>

这将生成一个包含接口和附加数据类型(用于传输对象)的.cs文件。请注意,此文件尚未准备好WCF,因为wsdl.exe似乎认为您要创建一个旧的.asmx服务。

步骤2:将接口代码导入项目

将生成的文件添加到项目中。添加用于使接口及其操作WCF就绪的属性。您需要将[ServiceContract]添加到接口,将[OperationContract]添加至操作。

步骤3:创建WCF服务

创建一个WCF服务(.svc文件)并删除生成的接口。相反,让服务从生成的接口实现契约。现在,您可以实现新功能了。

第4步:调整剩余的绑定、身份验证设置等,以匹配原始web服务。

您可以使用svcutil.exe从wsdl和xsd文件为服务设置的客户端部分生成proxy.cs类和app.config文件。

以下是将从visual studio命令行生成代理的命令:

svcutil.exe c:'OutputFolder' /o:serviceproxy.cs /config:app.config "C:'WSDL And XSD Folder'*.wsdl" "C:'WSDL And XSD Folder'*.xsd"

如果你计划走RESTful路线,这些可能会帮助你开始

http://www.codeproject.com/Articles/571813/A-Beginners-Tutorial-on-Creating-WCF-REST-Services

http://msdn.microsoft.com/en-us/library/bb412178.aspx

http://nareshkamuni.blogspot.com/2011/12/window-communication-foundation-wcf-in.html

更深入-http://www.thatindigogirl.com/-几年前的Michele Leroux Bustamante。

与其说是演练,不如说是有很好的信息http://rest.elkstein.org/2008/02/what-is-rest.html