WCF配置和承载服务
两种配置方式:1.配置文件中配置;2.代码中配置
1.配置文件中配置
Services配置节
在<services>配置节中可以定义多个服务,每一个服务都被放到<service>配置节中,WCF的宿主程序可以通过配置文件找到这些定义的服务并发布这些服务
每个服务都具有以下属性:
name:指定提供服务协定的实现的类型。 这是完全限定名称(命名空间和类型名称)
behaviorConfiguration:指定一个在behaviors 元素中找到的behavior 元素的名称。 指定的行为控制操作,例如服务是否允许模拟。
endpoint:是<service>配置节的主体,其中,<endpoint>配置节包含了endpoint的三个组成部分:Address、Binding和Contract。由于具体的binding配置是在<bindings>配置节中完成,因而,在<endpoint>中配置了bindingConfiguration属性,指向具体的binding配置
Endpoint元素
address:指定服务的统一资源标识符(URI),它可以是一个绝对地址或是一个相对于服务基址给定的地址,如果设置为空字符串,则指示在创建服务的ServiceHost时,终结点在指定的基址上可用。
Binding:通常,指定一个类似WsHttpBinding的系统提供的绑定,但也可以指定一个用户定义的绑定。 指定的绑定确定传输协议类型、安全和使用的编码,以及是否支持或启用可靠会话、事务或流。
bindingConfiguration:如果必须修改绑定的默认值,则可通过在bindings元素中配置相应的binding元素来执行此操作 此属性应赋予与用于更改默认值的binding 元素的name 属性相同的值。
contract:指定定义协定的接口。 这是在由service 元素的name 属性指定的公共语言运行库(CLR) 类型中实现的接口。
behaviors配置节
当我们在定义一个实现了Service Contract的类时, binding和address信息是客户端必须知道的,否则无法调用该服务。然而,如果需要指定服务在执行方面的相关特性时,就必须定义服务的behavior。
Binding元素
1.绑定是用于指定连接到WCF服务终结点所必需的通信详细信息的对象,WCF服务中的每个终结都要求正确指定绑定
2.绑定最起码必须指定要使用的传输(如HTTP 或TCP
3.绑定包含的有关如何连接到终结点的信息属于以下类别中的一种。– 协议: 确定要使用的安全机制:可靠消息传递功能或事务上下文流设置。
– 编码: 确定消息编码(例如,文本或二进制)。
– 传输:确定要使用的基础传输协议(例如 TCP或HTTP)
WCF 包含一组系统提供的绑定。这些绑定旨在满足大多数应用程序要求。 下面的类表示系统提供的绑定的一些示例:
– BasicHttpBinding:一个HTTP 协议绑定,适用于连接到符合WS-I 基本配置文件规范的Web 服务(例如,基于ASP.NET Web 服务的服务)。
– WSHttpBinding:一个可互操作的绑定,适用于连接到符合WS-* 协议的终结点。 协议的终结点。
– NetNamedPipeBinding:使用.NET Framework 连接到同一计算机上的其他WCF 终结点。
– NetMsmqBinding:使用.NET Framework 创建与其他WCF 终结点的排队消息连接。.
2.代码中配置
WCF客户端消费
1.vs添加服务引用
2.Svcutil 工具获取代理类