什么是WCF中的“端点”?

时间:2009-04-13 20:15:39

标签: c# wcf endpoints

我的印象是,在配置文件中将端点定义为可能的客户端列表,但这没有任何意义(从某种意义上说,我认为它说的是计算机可以连接到服务)现在我正在收集这更像是一个定义,所以有人请解释一下我的终点是什么吗?我理解定义合同界面然后实施合同的概念,但我在那里之间丢失了,实际上有一些可用的东西。

在这种情况下,地址是什么?主持人地址?

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

合同本质上是“共享的对象”(是的,我知道技术上不正确,但在这里与我合作)

8 个答案:

答案 0 :(得分:70)

端点是服务公开的内容,并且在WCF术语中,由三个部分组成:

  • 地址
  • 结合
  • 合同

地址是可以通过其访问端点的URL。

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

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

大多数时候,人们都记得它是A B C.

有些注意事项:

绑定通常是应用了行为的渠道组合;通道是通道堆栈上的元素,它们在到达服务实现之前修改消息并执行操作。

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

答案 1 :(得分:17)

我将在这里引用Juval Lowy的编程WCF服务

  

每个服务都与一个定义位置的地址相关联   service是一个定义如何与之通信的绑定   服务,以及定义服务功能的合同。这个   管理服务的三巨头很容易记住作为ABC的   服务。

     

WCF以端点的形式正式化这种关系。该   端点是地址,合同和绑定的融合。

     

每个端点必须包含所有三个元素,并且主机公开   端点。

答案 2 :(得分:12)

WCF中的端点
WCF服务是一个公开一组端点的程序。每个端点都是与世界通信的门户。 终点由三个部分组成 1)地址
    定义服务所在的位置
    前 - http://www.test.com:8001/MyService
2)绑定
    一种绑定,指定客户端如何与端点通信。
    ex - BasicHttpBinding,WSHttpBinding,WSDualHttpBinding等 3)合同
    确定可用操作的合同

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

答案 3 :(得分:5)

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

答案 4 :(得分:3)

参见here:  服务端点指定用于通信的地址,绑定和合同。

答案 5 :(得分:1)

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

答案 6 :(得分:0)

Web服务端点可以隐藏部分或全部这些内容。并根据请求可以在内部决定Request的处理。

SRJTester工具(在Github上可用)很高兴在提出服务请求时指定端点,操作,协议等。

答案 7 :(得分:0)

Endpoint 用于配置客户端应用程序和 WCF 服务之间的通信通道

终点样本

<endpoint address="http://localhost:3901/Service1.svc"
           binding="basicHttpBinding"  
          contract="ServiceReference.IService1" bindingConfiguration="BasicHttpBinding_IService1"  
              name="BasicHttpBinding_IService1" />