wcf为什么客户端需要与服务相同的端点?

时间:2012-02-17 10:02:58

标签: wcf endpoint

为什么客户端需要与服务相同的端点? 是客户端查找其端点中的地址,并且服务将使用它在其端点中放置的地址进行侦听???

1 个答案:

答案 0 :(得分:1)

简单的答案是服务和客户必须就通信机制达成一致 - 这就是端点的用途

  • 他们必须就地址达成一致 - 服务会在那里监听请求,客户会在那里发送请求。
  • 他们必须就绑定达成一致 - 这就是通信的“方式” - 将使用什么传输协议,消息在线上会是什么样子以及如何配置安全性
  • 他们必须就合同达成一致,因为这是对可用功能以及预期和可能返回的数据的定义

换句话说,他们必须就端点定义达成一致

然而,事情比实际情况稍微复杂一些

  • 该地址实际上是一个“逻辑地址”,服务侦听的物理地址由listenUri定义,客户端可以通过定义clientVia端点行为来发送消息
  • 绑定必须兼容,客户端可以在其绑定中发送其他数据,而不是用于服务,而是一些路由中介
  • 合同必须兼容,因为WCF序列化引擎必须能够根据合同定义呈现或反序列化消息的结构