BasicHttpBinding vs WsHttpBinding vs WebHttpBinding

2023-11-27

在 WCF 中,有几种不同类型的基于 HTTP 的绑定:

  • 基本Http绑定
  • WsHttp绑定
  • WebHttp绑定

这3个有什么区别?

特别是在功能/性能和兼容性方面有哪些差异?


您在这里比较苹果和橙子:

  • webHttp绑定是 REST 风格的绑定,您基本上只需点击 URL 即可从 Web 服务获取大量 XML 或 JSON

  • 基本Http绑定 and wsHttpBinding是两个基于 SOAP 的绑定,与 REST 有很大不同。 SOAP 的优点是使用 WSDL 和 XSD 来详细描述服务、其方法以及传递的数据(REST 还没有类似的东西)。另一方面,您不能只使用浏览器浏览到 wsHttpBinding 端点并查看 XML - 您必须使用 SOAP 客户端,例如WcfTestClient 或您自己的应用程序。

因此,您的第一个决定必须是:REST 与 SOAP(或者您可以从服务中公开这两种类型的端点 - 这也是可能的)。

那么,basicHttpBinding和wsHttpBinding之间的区别如下:

  • basicHttpBinding 是非常基本的绑定 - SOAP 1.1,在安全性方面没有太多,在功能方面也没有太多 - 但与几乎任何 SOAP 客户端兼容 -> 非常适合互操作性,但在功能和安全性方面较弱

  • wsHttpBinding 是成熟的绑定,它支持大量 WS-* 功能和标准 - 它具有更多的安全功能,您可以使用会话连接,您可以使用可靠的消息传递,您可以使用事务控制 - 只是更多的东西,但是 wsHttpBinding 也“更重”,并且在消息通过网络传输时会增加大量开销

有关两者之间的深入比较(包括表格和代码示例),请查看此代码项目文章:BasicHttpBinding 和 WsHttpBinding 之间的区别

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BasicHttpBinding vs WsHttpBinding vs WebHttpBinding 的相关文章

随机推荐

  • 如何在 Windows 上从 pygraphviz 运行 neato

    我正在尝试在 python v 2 7 中使用 pygraphviz 和 networkx 来创建网络映射 我在 stackoverflow 上发现了一个看起来非常有用的脚本 import networkx as nx import num
  • GDB TUI - 输出未对齐

    我在ubuntu上使用gdb 7 7 1 GNU gdb Ubuntu 7 7 1 0ubuntu5 14 04 2 7 7 1 我的终端是 Konsole 2 13 2 我遇到的问题是 当我进入 TUI 模式时 在一两个调试器会话之后 会
  • 设置请求持续时间的全局变量

    我可以为单个请求的长度设置某种全局变量 以便页面的所有控件都可以响应它 而不必将其传递给每个控件吗 例如 如果有人点击我的 MasterPage 上的 保存 按钮 我是否可以设置一些内容 以便我的页面上的每个 UserControl 都可以
  • Future.wait() 不能在没有纤程的情况下等待(在 Meteor.method 中等待另一个 future 时)

    In Meteor 我正在编写一个方法 该方法必须检查某个路径的子目录中是否有新文件 我首先想列出其中的子目录Meteor之后我child process exec一个简单的 bash 脚本 列出自上次执行以来添加的文件 我在使目录发现异步
  • 使用 O 表示法在 for 循环中对 LinkedList 调用 get() 的复杂性

    我有一个 uni 实用程序 可以使用 O 表示法确定一小部分代码的复杂性 代码是 for int i 0 i lt list size i System out println list get i 所讨论的列表是一个链接列表 对于我们的实
  • 如何破译 C 中复杂的指针声明?

    所以我想举个例子 int pi pi is a pointer that points to an integer const int cpi cpi is a pointer that points to a constant integ
  • Excel - 如何转换 UTC 日期时间

    我想在Excel中使用这个字符串作为日期时间 2016 04 06T18 05 32 6550717 03 00 怎样才能转换呢 日期 时间中有两件事引起了问题 第一个是T这表示时间的开始 Excel 使用空格 第二个是右侧的所有内容 如果
  • TestNG 中测试的执行顺序

    如何自定义TestNG中测试的执行顺序 例如 public class Test1 Test public void test1 System out println test1 Test public void test2 System
  • 如果“z”中有“x”和“y”:

    我正在用 python 编写一个问答脚本 它获取 raw input 并将其设置为 theQuestion 我试过if var1 and var2 in theQuestion 但它会查找其中一个字符串 而不是同时查找两个字符串 有没有一种
  • 使用 LongListSelector 连续分页

    当我的 LongListSelector 滚动到底部时 我想自动从 Web 服务加载更多数据 就像商店应用程序一样 我的问题是我找不到任何事件来触发加载更多操作 Microsoft 的建议是使用 LongListSelector ItemR
  • 如何在 Ionic 2 中的选择组件内使用图像

    我正在尝试将图像放入SelectIonic 2 中的组件 我已将图像源文件放入www img我的 Ionic 2 项目中的文件夹 然而 使用一个简单的img tag 使用此代码不显示任何图像
  • goto 可以打破嵌套循环吗?

    JavaScript 支持类似于 goto 的语法来打破嵌套循环 总的来说 这不是一个好主意 但它被认为是可以接受的做法 C 不直接支持break labelName语法 但它确实支持臭名昭著的goto 我相信 C 中可以实现等效的功能 i
  • 如何将 tqdm 与多线程结合使用?

    我试图使用 tqdm 报告从三个链接下载每个文件的进度 我想使用多线程从每个链接同时下载 同时更新进度条 但是当我执行脚本时 有多行进度条 似乎线程正在同时更新 tqdm 进度条 我问我应该如何运行多线程来下载文件 同时保持每次下载的进度条
  • Java - 全名正则表达式

    如何验证全名的正则表达式 我只想要字母 没有数字 和正则表达式的空格 这就是我到目前为止所做的 你能帮我修复正则表达式吗 非常感谢 public static boolean isFullname String str boolean is
  • 让 ggvis::export_png() 工作

    Goal 导出一个ggvis图为 PNG 文件 用于包含在 Rmd 文档中 Problem 我对 Node js 基本上一无所知 除了它很棒而且我应该了解更多 我了解到 library ggvis mtcars gt ggvis mpg w
  • 如何实现带有子项的可扩展android导航抽屉?

    如何实现这样的android导航抽屉 TopLevelView1 TopLevelView4 可以选择并且没有子项顶级 evelView 5 可以折叠 我的问题是 如果我的小组结构是这样的 All Stared类别 mp3 txt doc
  • 如何清理ThreadLocals

    有人有一个如何做到这一点的例子吗 它们是由垃圾收集器处理的吗 我正在使用 Tomcat 6 javadoc 是这样说的 只要线程处于活动状态并且 ThreadLocal 实例可访问 每个线程就持有对其线程局部变量副本的隐式引用 线程消失后
  • 在 C# 中的 Excel[2007] 中添加超链接 - 在 Excel 本身中

    谁能告诉我如何在 Excel 2007 或更高版本 中添加超链接 使用 NET c 中的 Office Interop 将一张工作表中的单元格复制到另一张工作表中的单元格 例如 从 Sheet1 单元格 A1 到 Sheet2 单元格 B1
  • 如何将 apklib 转换为 aar

    由于 Gradle 不支持apklib依赖项如何迁移apklib依赖于aar依赖关系 是否可以手动或自动转换apklib依赖于aar 如果是 如何 如果否 为什么不呢 在这个问题中 我假设我没有原始项目apklib 而是文件本身 apkli
  • BasicHttpBinding vs WsHttpBinding vs WebHttpBinding

    在 WCF 中 有几种不同类型的基于 HTTP 的绑定 基本Http绑定 WsHttp绑定 WebHttp绑定 这3个有什么区别 特别是在功能 性能和兼容性方面有哪些差异 您在这里比较苹果和橙子 webHttp绑定是 REST 风格的绑定