c# - 启动 Contract First WCF 或 Web 服务的最佳方式?

标签 c# xml web-services wcf xsd

我得到了一个 WSDL 文件和几个 XSD 文件来为其构建 Web 服务。现在我正在尝试将其设置为接收请求和响应。

我在 Web 服务方面的经验仅限于带有 asmx 文件等的旧版 asp。

XSD 文件中有很多信息,我不想手动构建这些类,我也不真正理解这到底需要什么(我想只是一个 xml 可序列化类,但还没有'调查了它)。

我从哪里开始呢?我查看了 WCF,但它对我来说完全陌生,所以我宁愿使用旧样式,但我正在努力寻找有关如何设置它或从 XSD 文件自动生成类的先机的任何信息.

我确实尝试了一下 WCF,但是当我尝试生成 WebService 代码时,WSCF blue 给我错误(Cannot import wsdl:portType)。 svcutil.exe 将生成 一些 XSD 文件信息,但出于某种原因不是全部。

所以两个问题:

  1. 如何从 XSD 文件生成一些 stub 类来实现这一目标

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

最佳答案

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

第 1 步:从 WSDL 为服务接口(interface)创建代码

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

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

第 2 步:将接口(interface)代码导入您的项目

将生成的文件添加到您的项目中。添加属性以使接口(interface)及其操作为 WCF 准备就绪。您需要将 [ServiceContract] 添加到接口(interface),将 [OperationContract] 添加到操作。

第 3 步:创建 WCF 服务

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

第 4 步:调整剩余的绑定(bind)、身份验证设置等以匹配原始网络服务。

关于c# - 启动 Contract First WCF 或 Web 服务的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23000510/

相关文章:

mysql - 服务器之间的数据库传输

java - 将 Java Web 服务与 Unix 安全集成

c# - 远程服务器返回错误 : (407) Proxy Authentication Required

C# File.ReadAllBytes 与 std::ifstream (Windows)

c# - Gecko 45 c# winform 添加脚本到文档

将xml转换为dtd的php脚本

php - 在 PHP 中使用 importNode、namespace 和 appendChild 的奇怪事情

c# - OpenXml SDK 返回大量的科学值

android - "Top level element is not completed"是什么意思?

c# - 序列化一个通用类型的 FaultException