BasicHttpBinding vs WsHttpBinding vs WebHttpBinding

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

这三者之间有什么不同?

特别是在特性/性能和兼容性方面有什么不同?

177211 次浏览

你在拿苹果和橘子做比较:

  • strong>是rest风格的绑定,基本上你只需要点击一个URL,就可以从web服务中获得大量的XML或JSON

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

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

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

  • basicHttpBinding是非常基本的绑定——SOAP 1.1,在安全性方面没有太多,在特性方面也没有太多——但兼容几乎任何SOAP客户机——>在互操作性方面很好,在特性和安全性方面很弱

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

要了解两者之间的深入比较(包括表格和代码示例),请参阅codeproject文章:BasicHttpBinding和WsHttpBinding的区别

如果在将文件复制到web服务器时缺少服务名称空间引用,请尝试以下操作。我们发现,发布项目并将App_WebReference.dll文件复制到bin文件夹中可以解决这个问题。使用将服务添加到web中找到的项目中所生成的绑定。配置然后可以复制到您的服务器web。配置。