代码改变世界

WCF 第四章 绑定 在多个绑定上暴露一个服务契约

  DanielWise  阅读(2477)  评论(0编辑  收藏  举报

这一章的之前部分描述了使用netTcpBinding和wsHttpBinding绑定暴露服务。这些绑定中的每一个都用来支持特殊通信场景。例如,netTcpBinding绑定对于.NET应用程序间的通信是很理想的,wsHttpBinding绑定支持使用Web 服务的不同平台间的通信,basicHttpBinding绑定支持不支持高级协议的Web 服务间的通信。

   通过在一个服务中使用多个终结点,你可以配置一个服务通过多个绑定暴露它的能力,这就像在第二章”一个服务中的多个契约和终结点”描述的那样。这意味着客户端可以使用更多被支持的可选绑定来连接到服务端。通用的场景是使用netTcpBinding绑定把一个服务暴露给一个.NET应用程序,使用wsHttpBinding绑定把同样的服务暴露给一个Java应用程序,使用basicHttpBinding绑定再次把服务暴露给原有的旧的客户端。

   WCF通过将下层通信抽象出来并让开发人员专注于创建服务完成了这个。它们是怎么样暴露出来的并不重要只要绑定支持应用程序需求的特性就可以。这意味着一个服务可以使用不同的绑定暴露。

注意 当创建交互服务时使用多个绑定

使用多个绑定暴露一个服务的能力带来了非常大的灵活性。你可以同时使用不同的绑定来暴露服务。这允许一个服务暴露同时给一个WCF客户端和一个非WCF客户端并且不会因为交互导致性能降低。例如,你可以同时使用netTcpBinding和wsHttpBinding来暴露一个服务。netTcpBinding可以在WCF客户端使用而wsHttpBinding可以在非WCF客户端使用(比如Java).仅需要记得你使用的所有绑定要支持你的应用程序的需求。例如,你不能通过不支持事务绑定来暴露一个需要事务处理的服务。

  暴露一个服务给一个.NET应用和一个Java应用仅是使用多个绑定的例子。另外一个例子是暴露一个服务给一个网络浏览器和一个.NET Windows应用程序。使用多个绑定暴露一个服务的例子在列表4.36显示。

列表4.36 使用多个绑定的宿主配置

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示