WCF微软框架学习

感觉有点像spring cloud那套,也是一个分布式系统。
包含四个方面:
1、契约 定义描述服务的功能和作用 有点像是注解,标注这个东西是个指定的什么特殊东西,可以进行一些什么操作。
2、服务运行时 定义服务运行时的具体行为
3、消息 消息传输的方式及消息的编码解码 【是消息队列那套吧?
4、激活和宿主 部署方式: 把wcf程序看成是一个寄生虫,寄生于宿主中。

基础概念

地址

每个服务都有唯一的地址 其他服务需要通过服务的地址对其进行访问 就微服务之间互相调用那套

绑定

定义服务于外部通信的方式 也就是网络通信那块内容 绑定包括 请求头 请求文本及加密方式等。

契约

分成服务契约 数据契约 错误契约 消息契约
服务契约将多个相关操作联系在一起 组成单个功能单元。
数据契约 使用数据类型必须在元数据【这是啥】中进行描述
错误契约 错误类型的说明
消息契约 消息格式的描述

终节点

发送或接收消息的构造 大概就是传递http请求的接口吧,它包括了契约 绑定和地址,就是一个接口嘛。

元数据

描述服务的特征

宿主

控制服务生存期的应用程序。

行为

一组指定终结点的本地实现细节的行为。

构建wcf框架 demo实现

初步构建wcf框架完成后,可以看到默认文件中存在三种标签:
[ServiceContract] 该标记接口为服务契约(就是能被外界调用的意思)就是意思是表明某个接口为多个相关操作的集合,这个集合能被外界调用。
[OperationContract] 指明该方法为方法契约,虽然标记了该方法所属接口为服务契约,但是无法表明该接口中的某些方法能被外界调用,所以需要将能被外界调用的方法标记为方法契约。
[DataContract] 数据契约
[DataMember] c#中,有out关键字,为了让一个方法能返回多个值设计的。
如:xxx(int x, int y, out int z, out int u)
调用后,可以得到 z和u两个结果。
在wcf框架中,核心文件是svc的那个,我的理解就是wcf是一个可以远程调用接口的东西,大概用于微服务间的通信。

出现问题:

跟着百度使用Visio studio2019新建wcf服务项目 但生成的新项目中不存在教程中出现的 IService1.cs、 Service1.svc两个默认文件

出现问题原因
有相关插件未被下载。

解决问题
点击 工具–>获取工具和功能 里面右侧的 ASP.NET和Web开发 -->Windows Communication Foundation该选项的复选框勾选中。

搭建wcf框架时,出现“没有与给定的地址匹配的协议绑定”问题

出现问题原因
web.config绑定地址配置错误,其中在IIS中托管WCF服务时,在服务端点中定义的地址不是您需要使用的地址, Web服务器,其端口(通常为80)和虚拟目录以及SVC文件会确定您的服务地址,所以在此处应当定义相对地址,而不是绝对地址。

解决方案
将service代码段中的address="" 部分http://[ip:port]部分去除,在此处使用相对地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值