第二章(契约 在一个服务中实现多个契约和终结点)

一个服务作为一系列终结点被定义的。每个终结点都有一个地址,绑定和契约。契约就是暴露终结点能力的。地址就是这些应用或服务从网络的哪个地址可找到,契约是关于如何访问他们的。

   在终结点和契约间有一对多的关系。一个终结点可以只有一个契约,但是一个契约可以被很多终结点引用。尽管一个终结点可以仅仅确认一个契约,接口聚合使能一个单独的契约来暴露多个接口。另外,多个有同样绑定但是不同契约的终结点可以位于同一个地址,给一个单独终结点实现所有契约的假象。

   通过在一个服务中的多个终结点暴露一个契约,你可以让服务在不同绑定下都可以访问。你可以定义一个终结点使用WS-I基础协议绑定来得到最大访问量同时使用另外一个使用TCP协议和二进制编码的终结点来实现更快的性能。通过把多个接口变成一个接口的假象,你可以通过合并在一个单一的服务访问,初步编纂成独立的接口能力。

LISTING 2.10 在一个终结点中暴露多个契约


   列表2.11一个为三个契约暴露多个终结点的配置文件。有一个为IGoodStockService契约的终结点,两个为IGreateStockService契约的终结点和一个为IAllStockServices契约的终结点。

   因为有多个终结点共享一个寻址方案,每个终结点必须定义不同的地址。使用了相对地址,所以每个终结点的完全地址是服务基地址加上相对地址。

LISTING 2.11 在一个服务中暴露多一个终结点


   因为IGreatStockService契约在多个终结点上暴露,客户端应用程序必须在为契约创建一个代理实例时引用终结点名称。如果终结点名称没有确认,WCF将会抛出一个错误因为它无法知道使用哪个终结点。列表2.12显示了对GreatStockServiceClient代理的两次使用:一次使用basicHttpBinding访问BetterStockService,另一次使用wsHttpBinding访问BestStockService.

 

LISTING 当多个终结点被定义使用名字确认每个终结点


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值