WCF基础二
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不允许客户端直接与服务交互,客户端使用代理将调用转发给服务。(中介)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现