2009-04-13 45 views
50

我的印象是,一个端点在一个配置文件中被定义为可能的客户端列表,但这没有任何意义(我认为它说什么电脑可以连接到该服务)现在我正在收集这更多的是一个定义,那么有人请解释一下我的终点是什么?我理解定义合同界面然后执行合同的概念,但我迷失在那里,实际上有一些可用的东西。什么是WCF中的“端点”?

这是什么地址?主机地址?

绑定是使用正确的通信方法/协议吗?

合同是“被共享的对象”基本上(是的,我知道这是所以在技术上不正确,但在这里和我一起工作)

回答

70

端点是什么服务公开,并在WCF方面,是由三件事情:

  • 地址
  • 绑定
  • 合同

地址是在URL中使用哪些端点可以到达。

绑定指示应用的转换以及发送到地址处的合同实施的消息的形状(某种程度上)。

合同规定了在该地址处公开的操作。这正是它所说的,这是一个合同,指出哪些电话是允许的。

大多数时候,人们记住了它作为A B C.

需要注意以下几点:

结合通常要和应用的行为通道的组合;通道是通道堆栈上的元素,它们修改消息并在执行服务之前执行操作。

尽管在.NET中通常用接口表示,但并不要求以这种方式表示合同。一些设计优先倡导者将定义将要发送的请求和响应消息的模式,这是WCF将.NET Contract界面转换成的模式。

+0

这是有帮助的......如果我想写一个双向通信服务,我该如何去建设它?假设我有一个带有应用程序A和B的系统,如果A发送'ping'B等待1秒钟并发回pong,然后提示A等待1秒并再次发送ping。 – Firoso 2009-04-13 20:25:56

3

here: 服务端点指定地址,绑定和使用合同进行沟通。

17

我要举朱瓦尔·洛的编程WCF服务这里:

每一个服务都与定义了 服务,绑定定义如何与 通信的地址相关联服务以及定义服务的合同。这个服务的三重管理很容易记住作为 服务的ABC。

WCF以端点的形式将此关系形式化。 端点是地址,合同和绑定的融合。

每个端点都必须具有全部三个元素,并且主机会暴露端点 。

5

服务端点有一个地址,一个绑定和一个合同。 端点地址是端点驻留的网络地址。 EndpointAddress类表示WCF端点地址。 端点的绑定指定端点如何与世界通信,包括诸如传输协议(例如,TCP,HTTP),编码(例如,文本,二进制)以及安全要求(例如,SSL,SOAP消息安全性)的事情。 Binding类表示一个WCF绑定。 Endpoint的合约指定端点进行通信的内容,实际上是在具有基本消息交换模式(MEP)(如单向,双工和请求/答复)的操作中组织的消息的集合。 ContractDescription类代表一个WCF合约。

1

服务端点具有地址,绑定和合同。端点地址是端点驻留的网络地址。 EndpointAddress类表示WCF端点地址。端点的绑定指定端点如何与包括诸如传输协议(例如,TCP,HTTP),编码(例如文本,二进制)以及安全要求(例如SSL,SOAP消息安全性)等世界通信。 Binding类表示一个WCF绑定。端点的合约指定端点进行通信的内容,实质上是在具有诸如单向,双工和请求/答复等基本消息交换模式(MEP)的操作中组织的消息的集合。 ContractDescription类代表一个WCF合约。

12

WCF中的端点
WCF服务是一个公开端点集合的程序。每个端点都是与世界通信的门户。终点由三部分组成。
1)地址
     定义其中服务位于
     前 - http://www.test.com:8001/MyService
2)绑定
      A结合,它指定了客户端如何能够与通信终点。
     前 - basicHttpBinding的,WsHttpBinding的,WSDualHttpBinding等
3)合同
     识别可用的操作合同

终端将在web.config文件中提到的创建服务。

0

Web服务端点可以隐藏一些或所有这些。并根据请求可以在内部决定请求的处理。

SRJTester工具(在Github上提供)很适合在提出服务请求时指定端点,动作,协议等。