1:地址 。 WCf 的每一个服务都有一个唯一地址,地址包括传输协议和服务位置。
- HTTP:采用http\https协议进行传输,默认端口为80.
- TCP:采用ne.tcp协议进行传输,默认端口为808.
- MSMQ: 采用net.msmq进行传输,使用Windows的MSMQ机制,必须指定队列名,如果是处理私有队列,则必须指定队列类型。
- PEET NetWord:采用net.p2p进行传输,采用windows的对等网进行传输。
- IPC,采用net.pipe进行传输。
2:绑定。绑定将通信模式与交互方式直接的组合进行规范,将这些通信特征合理地组合在一起。
- 基本绑定(BasicHttpBinding),WCF默认的绑定方式。经常使用。将WCF 服务公开为WEB服务。
- TCP绑定(NetTcpBinding)使用TCP协议通信,支持多种特性,包括可靠性、事务性、安全性及WCF之间通信的优化,缺点是客户端必须使用WCF。
- IPC绑定(NetNamedPipeBinding)使用命名管道为同一机器的通信进行传输,支持的特性与TCP绑定类似,是性能和安全性最佳的绑定。
- Web服务绑定(WSHttpBinding)使用HTTP或HTTPS进行传输。
- WS双向绑定(WSDualHttpBinding)支持双向绑定。
- MSMQ绑定(NetMsmqBinding)使用MSMQ进行传输。
常用绑定的传输协议与编码格式如下:
名字 | 传输协议 | 编码格式 | 互操作性 |
BasicHttpBinding | HTTP/HTTPS | Text,MTOM | yes |
NetTcpBinding | TCP | Binary | no |
NetNamedPipeBinding | IPC | Binary | no |
WSHttpBinding | HTTP/HTTPS | Text,MTOM | yes |
WSDualHttpBinding | HTTP | Text,MTOM | no |
NetMsmqBinding | MSMQ | Binary | no |
3:契约。WCF的所有服务都公开为契约,契约与平台无关,是描述服务功能的标准方式。
- 服务契约:客户端能够执行的服务操作
- 数据契约:交互数据类型
- 错误契约:抛出的错误信息
- 消息契约:允许服务与消息进行交互,不常使用,会增加代码量。
4:终结点。是服务进行通讯的唯一手段(方式)。终结点是用来发送和接收消息的构造,终结点是真正意义上的接口,它包含了一个对象接口所需的全部信息
5:元数据。服务的元数据描述服务的特征,外部实体需要了解这些特征以便与该服务进行通信。服务的元数据包括XML、架构文档(用于定义服务的数据协定)和WSDL文档(用于描述服务的方法)。
6:宿主。WCF服务类不能凭空存在,每个WCF服务类必须托管在某个宿主进程中。单个宿主进程可以托管多个服务,而相同的服务类型也可以托管在多个宿主进程中,如果服务与客户端驻留在相同的进程中,则称为进程内托管。
- Web站点
- Windows窗体应用程序
- Windows服务
- Windows激活服务(WAS)
7:代理。WCF不允许客户端直接与服务交互,客户端使用代理将调用转发给服务。(中介)