首页 > 代码库 > wcf 学习笔记1

wcf 学习笔记1

1. wcf 中的所有消息均为SOAP消息,注意WCF的消息与传输协议无关,与WEB服务不同,因此WCF服务可以在不同的协议之间传输,而不仅限于HTTP

2. wcf的每一个服务都有一个唯一的地址,地址包含两个元素:服务位置和传输协议;服务位置包括机器名,站点,通讯端口,管道或队列,以及一个可选的特定路径或URI统一资源标识

3. wcf 通讯协议有:http ,tcp , peer network , ipc , msmq ,使用命名管道的服务只能接收来自同一台机器的调用,每台机器只能打开一个命名管道

4. wcf 中所有服务都公开为契约,契约与平台无关,是描述服务功能的标准方式,wcf定义了四种类型的契约:

    一,服务契约,描述客户端能够执行的服务操作

    二,数据契约,定义了与服务交互的的数据类型

    三,错误契约,定义了服务抛出的错误

    四,消息契约,允许服务直接与消息交互(比较少用)

5. 只有接口或者类被标记为serviceContract特性,才能被WCF客户端访问,只有使用了operationContract属性标记的方法才能被调用,此外,契约操作不能使用引用对象作为参数,只允许使用基本类型货数据契约

6. iis托管,主要优势是宿主进程可以在客户端提交第一次请求的时候自动启动,还可以借助iis管理宿主进程的生命周期,缺点在于只能使用HTTP协议,使用IIS托管,服务的基地址必须与.SVC文件的地址保持一致

7. 自托管

8. WAS托管,windows激活服务,必须提供一个.SVC文件,与IIS托管一样,区别是WAS托管不局限于使用HTTP协议,它支持所有的可用WCF传输协议,端口与队列

9. WCF 引入了绑定(Binding)技术将这些通讯特征组合在一起,一个绑定封装了传输协议,消息编码,通讯模式,可靠性,安全性,事务传播以及互操作等相关选项的集合,使得开发者能够基于不同的基础功能模块使用相同的服务逻辑

    一,基本绑定(basic binding)basichttpbinding 类支持,能将WCF服务公开为旧的ASMX WEB服务,使得旧的客户端能与新的服务协作

    二,TCP绑定 ,nettcpbinding类提供,使用TCP协议实现在Intranet中跨机器的通信

    三,对等网绑定,netpeertcpbinding类提供

    四,IPC绑定,netnamepipebinding类提供,使用命名管道为同一机器的通信进行传输,最安全,因为不能接收来自机器外的调用,与TCP绑定类似

    五,WEB服务绑定,wshttpbinding类提供,使用Http或https进行传输,为基于internet的通信提供了可靠性,事务性与安全性等特性

    六,WS双向绑定,wsdualhttpbinding,与WS绑定相似,但还支持从服务到客户端的双向通信

    七,MSMQ绑定,netmsmgbinding类提供,用以提供断开的队列调用的支持