WCF 休息和 Wcf 肥皂服务之间的区别

Posted

技术标签:

【中文标题】WCF 休息和 Wcf 肥皂服务之间的区别【英文标题】:Difference between WCF rest and Wcf soap Services 【发布时间】:2020-06-11 15:09:36 【问题描述】:

我是 wcf 概念的新手。

根据我的理解,如果服务端点绑定是 basicHttpBinding 那么它就是soap服务。

如果端点绑定是 webHttpBinding 那么它就是 Rest 服务。

简而言之,如果我们能够通过调用公共方法从浏览器中检索结果,那么它就是一个休息服务..

请建议是否正确。

注意:如果服务可以公开访问

【问题讨论】:

为什么将可用的传输选项与协议进行比较? REST 只定义它应该有 CRUD 操作,通过 URI 访问给定的数据并且数据应该是超文本(html、XML、JSON,...)它没有定义协议 ... SOAP 它只是协议... 【参考方案1】:

在 WCF 中,您可以将 BasicHttpBinding(SOAP 1.1 规范)或 WSHttpBinding(SOAP 1.2 规范)用于 SOAP Web 服务。这两个绑定都支持 SOAP 消息。

WebHttpBinding 支持 HTTP 请求,而不是 SOAP 消息。然而,REST 服务不仅仅是响应 HTTP 请求,它更多的是关于您如何响应 HTTP 请求,例如,使用 HTTP 动词(GET、POST、PATCH、DELETE)映射到对资源的​​操作,因此 GET = 读取、POST = 创建、PATCH = 更新和 DELETE = 删除。有关基础知识,请参阅 this Wikipedia。

所以 WCF 服务可以使用 WebHttpBinding 但不是 RESTful 服务。创建一个合适的 RESTful 服务需要做更多的工作。相反,RESTful 服务不需要使用 WCF 和 WebHttpBinding。我建议改为使用 ASP .Net Core 和 MVC 来开发 REST API。有很好的教程here。

【讨论】:

以上是关于WCF 休息和 Wcf 肥皂服务之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

并排托管 WCF 肥皂和休息端点

WCF 和肥皂 1.1

WCF 服务客户端:定制的肥皂信封未在线发送

WCF 服务、WCF RIA 服务和 WCF 数据服务之间的区别

WCF Web API 和 WCF 数据服务之间的区别

WCF 服务库和 WCF 服务应用程序之间的区别